Python,打印分隔列表

时间:2010-03-08 03:25:03

标签: python string printing

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

for element in list:
    print element + ",",

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

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

output
1,2,3,
desired
1,2,3

8 个答案:

答案 0 :(得分:91)

>>> ','.join(map(str,a))
'1,2,3'

答案 1 :(得分:13)

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

print ','.join(str(x) for x in a)

称为生成器表达式或genexp。

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

for i, x in enumerate(a):
  if i: print ',' + str(x),
  else: print str(x),

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

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

这个例子也利用了最后一次开关来打印最后一个项目时终止该行。

enumerate内置函数非常有用,值得记住!

答案 2 :(得分:2)

这就是join的用途。

','.join([str(elem) for elem in a])

答案 3 :(得分:2)

有两种选择,

您可以使用直接打印答案 print(*a, sep=',') 这将使用分隔符作为","你会得到答案,

1,2,3

另一种选择是,

print(','.join(str(x) for x in list(a)))

这将迭代列表并打印(a)并将输出打印为

1,2,3

答案 4 :(得分:0)

print ','.join(a)

答案 5 :(得分:0)

这很简单:

print(*a, sep=',')

Print lists in Python (4 Different Ways)

祝你好运。

答案 6 :(得分:-1)

 def stringTokenizer(sentense,delimiters):
     list=[]
     word=""
     isInWord=False
     for ch in sentense:
         if ch in delimiters:
             if isInWord: # start ow word
                 print(word)
                 list.append(word)
                 isInWord=False
         else:
             if not isInWord: # end of word
                 word=""
                 isInWord=True
             word=word+ch
     if isInWord: #  end of word at end of sentence
             print(word)
             list.append(word)
             isInWord=False
     return list

print(stringTokenizer(u“приветпарни!явамстихами,можетбыть,ещеотвечу”,“,!”))

答案 7 :(得分:-3)

>>> a=[1,2,3]
>>> a=[str(i) for i in a ]
>>> s=a[0]
>>> for i in a[1:-1]: s="%s,%s"%(s,i)
...
>>> s=s+","+a[-1]
>>> s
'1,2,3'