在单行中打印没有括号的列表

我有一个Python列表例如

names = ["Sam", "Peter", "James", "Julian", "Ann"] 

我想打印数组在一行中没有正常的“[]

 names = ["Sam", "Peter", "James", "Julian", "Ann"] print (names) 

将输出作为;

 ["Sam", "Peter", "James", "Julian", "Ann"] 

这不是我想要的格式,而是我希望它是这样的;

 Sam, Peter, James, Julian, Ann 

注意:它必须在一行中。

 print ', '.join(names) 

这听起来像是把列表中的所有元素都join到了', '

一般的解决scheme,工作在非string数组:

 >>> print str(names)[1:-1] 'Sam', 'Peter', 'James', 'Julian', 'Ann' 

这是一个简单的。

 names = ["Sam", "Peter", "James", "Julian", "Ann"] print(*names) 

星星解开列表并返回列表中的每个元素。

这是你需要的

 ", ".join(names) 

如果input数组是Integertypes,那么你需要首先将数组转换为stringtypes数组,然后使用join方法join,或者任何你想要的空间 。 例如:

 >>> arr = [1, 2, 4, 3] >>> print(", " . join(arr)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: sequence item 0: expected string, int found >>> sarr = [str(a) for a in arr] >>> print(", " . join(sarr)) 1, 2, 4, 3 >>> 

直接使用将连接整数和string的连接将抛出错误,如上所示。

您需要循环访问列表并使用end=" "将其保留在一行上

 names = ["Sam", "Peter", "James", "Julian", "Ann"] index=0 for name in names: print(names[index], end=", ") index += 1 

有两个答案,第一个是使用“sep”设置

 >>> print(*names, sep = ', ') 

另一个在下面

 >>> print(', '.join(names)) 

我不知道这是否是有效的,但简单的逻辑总是有效的:

 import sys name = ["Sam", "Peter", "James", "Julian", "Ann"] for i in range(0, len(names)): sys.stdout.write(names[i]) if i != len(names)-1: sys.stdout.write(", ") 

输出:

山姆,彼得,詹姆斯,朱利安,安