以逗号分隔的1行打印输出

时间:2011-10-26 09:12:14

标签: python list for-loop

我有一个列表:

mylist=[John, Stefan, Bjarke, Eric, Weirdo]

我想使用for循环在逗号分隔的一行中打印整个内容,例如:

for x in mylist:
    print x

我该怎么做?

4 个答案:

答案 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]