gpt4 book ai didi

python - 在 Python 中的最后一次循环迭代中跳过逗号

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:34 24 4
gpt4 key购买 nike

我正在尝试用 Python 迭代字典。输出必须类似于某种格式,以便它可以用作其他内容的输入。输入看起来像这样:

"ok":"1",
"invalid", "0",
"unknown", "4",
...

输出应该是这样的:

operation,ok=1,invalid=0,unknown=4,...

我真的很接近用 for 循环得到它,但我读到这可以用 Python 中的 .join() 很容易地完成。这是我的代码:

output_str = 'operation,'
for key, val in events.items():
output_str += '{0}={1},'.format(key, val)
print output_str

我可以使用 .join 来做到这一点吗?我读到 join 将允许我在最后一次迭代中跳过逗号。如果我这样做的话,我只是不确定如何将我的“操作”字符串添加到所有内容之前。

最佳答案

您确实可以在此处使用 str.join 函数将不同的元素连接在一起:

output_str = 'operation,'
output_str += ','.join(<b>'{0}={1}'.format(key,val) for key,val in events.items()</b>)

或者将其放在单行中(甚至使其更短):

output_str = 'operation,'+','.join('{0}={1}'.format(<b>*tup</b>) for <b>tup</b> in events.items())

这是如何工作的?正如 documentation 中所指定的那样, str.join 获取 striterable 并将它们与分隔符连接在一起(这里是 ',' ).所以 ','.join(['foo','bar','qux']) 生成 'foo,bar,qux'

现在我们使用生成器。对于 events.items() 中的 key,value 对,我们构造一个字符串 '{0}={1}'格式(键,值)。因此,如果 key='ok'val='1',则 {0}={1}'.format(key,val) 将生成 ok=1。现在我们将所有这些结合在一起。

由于 str.join 不添加尾部分隔符,因此它符合您问题的规范。 join 通常也会优于字符串连接(在循环中)。

关于python - 在 Python 中的最后一次循环迭代中跳过逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42863911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com