我有一个列表:
mylist=[John, Stefan, Bjarke, Eric, Weirdo]
我想使用for循环在逗号分隔的一行中打印整个内容,例如:
for x in mylist:
print x
我该怎么做?
答案 0 :(得分:3)
print ','.join(mylist)
或John Stefan等不是字符串:
print ','.join(str(o) for o in mylist)
答案 1 :(得分:1)
其他答案更聪明,更“Pythonic”。但如果你真的需要一个循环:
for item in mylist:
print item + ',', # <<<---- here, have a look to the trailing coma!
但是这会在打印前的下一个打印中留出一个空格。如果您使用sys.stdout
,打印将在上次打印后直接开始:
>>> import sys
>>> def t():
... for i in (1, 4, 2):
... print i + ',',
... sys.stdout.write('<>')
... for i in (3, 5):
... print i + ',',
>>> t()
1, 4, 2,<> 3, 5,
sys.stdout.write
不会添加空格,而'\r
会使打印在行首开始。这对于在命令行中刷新显示可能很有用。
所以,回答你的问题:
for item in mylist:
sys.stdout.write(item + ',')
但是这一行将以昏迷结束,str.join
函数不是这样。
答案 2 :(得分:0)
尝试这样做:
print ','.join(mylist)
不需要for循环。
答案 3 :(得分:0)
只是为了好玩,有Perl-esque hax0ring方式:
print repr(mylist)[1:-1]
)