Python,打印分隔列表

Mik*_*ike 37 python printing string

请考虑使用此Python代码打印逗号分隔值列表

for element in list:
    print element + ",",
Run Code Online (Sandbox Code Playgroud)

打印的首选方法是什么,如果element是列表中的最后一个元素,则不会出现逗号.

a = [1, 2, 3]
for element in a
  print str(element) +",",

output
1,2,3,
desired
1,2,3
Run Code Online (Sandbox Code Playgroud)

gho*_*g74 94

>>> ','.join(map(str,a))
'1,2,3'
Run Code Online (Sandbox Code Playgroud)

  • 良好代码+1,-1表示不在str和a之间放置空格. (8认同)
  • 空间是吸盘 (6认同)
  • 记住你必须首先转换为`str`的​​+1. (2认同)
  • 稍微解释一下就好了,你的回答纯粹包含代码。 (2认同)

Ale*_*lli 13

','.join在其他的答案所建议的是典型的Python溶液; 正常的方法,到目前为止,我在任何答案中都看不到

print ','.join(str(x) for x in a)
Run Code Online (Sandbox Code Playgroud)

称为生成器表达式或genexp.

如果您更喜欢循环(或者需要一个用于其他目的,例如,如果您不仅仅是打印每个项目),那么当然也有很好的选择:

for i, x in enumerate(a):
  if i: print ',' + str(x),
  else: print str(x),
Run Code Online (Sandbox Code Playgroud)

这是第一次切换(适用于任何可迭代的a,无论是列表还是其他),因此它将逗号放在每个项目之前,而不是第一个.最后一次切换稍微不那么优雅,它只适用于具有len()(不是完全通用的)的iterables :

for i, x in enumerate(a):
  if i == len(a) - 1: print str(x)
  else: print str(x) + ',',
Run Code Online (Sandbox Code Playgroud)

此示例还利用上次切换在打印最后一个项目时终止该行.

枚举内置的功能是非常有用的经常,也是值得铭记!