在单行中打印没有括号的列表
我有一个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(", ")
输出:
山姆,彼得,詹姆斯,朱利安,安