2011-10-26 61 views
0

我有1名名单:打印输出用逗号隔开

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

我想打印在一行整件事通过使用for循环,像逗号分隔:

for x in mylist: 
    print x 

我该怎么做呢?

回答

0

尝试这样做:不需要

for循环
print ','.join(mylist) 

一个。

3
print ','.join(mylist) 

,或者约翰·斯蒂芬等尚未字符串:

print ','.join(str(o) for o in mylist) 
+3

更妙的是只是删除方括号在第二个例子中使用发电机,而不是一个列表。 –

+0

对不起,并不熟悉stackoverflow,它不显示我的编辑评论。每迈克尔建议改进 – uncreative

+0

非常感谢! 。 – user1014224

1

其他的答案是更聪明,更 'Python化'。但如果你真的需要一个循环:

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功能的情况下结束。

+0

不知道尾随逗号,谢谢! – Fabian

+0

是的,这是快速显示的好选择。由于它自动增加空间,它提供了非常简单的代码的可读输出。 –

0

只是为了好玩,有Perl的去年秋季hax0ring方式:

print repr(mylist)[1:-1] 

;)