使用分隔符打印列表中的所有项目

问题描述 投票:0回答:8

考虑这个用于打印逗号分隔值列表的 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
python string printing
8个回答
114
投票
>>> ','.join(map(str,a))
'1,2,3'

19
投票

非常简单:

print(*a, sep=',')

在 Python 中打印列表(4 种不同的方式)


15
投票
其他答案中建议的

A

','.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通常很有用,值得牢记!


4
投票
有两种选择,

您可以使用直接打印答案

print(*a, sep=',')

这将使用分隔符“,”,您将得到答案,

1,2,3

另一个选择是,

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

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

1,2,3
    

2
投票
这就是

join

 的用途。

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

-1
投票
print ','.join(a)
    

-2
投票
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"привет парни! я вам стихами, может быть, еще отвечу",", !"))


-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'
    
© www.soinside.com 2019 - 2024. All rights reserved.