我有一个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

注意:必须为单行。


当前回答

这里有一个简单的例子。

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

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

其他回答

您需要遍历列表并使用end=" "将其保持在一行上

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

对于整数类型的数组,我们需要先将其更改为字符串类型,然后使用连接函数来获得不带括号的干净输出。

    arr = [1, 2, 3, 4, 5]    
    print(', '.join(map(str, arr)))

输出- 1,2,3,4,5

对于字符串类型的数组,我们需要直接使用连接函数来获得不带括号的干净输出。

    arr = ["Ram", "Mohan", "Shyam", "Dilip", "Sohan"]
    print(', '.join(arr)

输出- Ram, Mohan, Shyam, Dilip, Sohan

这就是你需要的

", ".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(", ")

输出:

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

','.join(list)仅当列表中的所有项都是字符串时才有效。如果您希望将数字列表转换为逗号分隔的字符串。如a =[1,2,3,4]变成'1,2,3,4',那么你可以选择

str(a)[1:-1] # '1, 2, 3, 4'

or

str(a).lstrip('[').rstrip(']') # '1, 2, 3, 4'

尽管这不会删除任何嵌套列表。

将其转换回列表

a = '1,2,3,4'
import ast
ast.literal_eval('['+a+']')
#[1, 2, 3, 4]