我有一个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 str(names)[1:-1]
'Sam', 'Peter', 'James', 'Julian', 'Ann'

其他回答

print(', '.join(names))

这个,就像它听起来一样,只是取列表中的所有元素并用','连接它们。

如果输入数组是Integer类型,那么您需要首先将数组转换为字符串类型的数组,然后使用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
>>>

直接使用join将连接整数和字符串将抛出错误如上所示。

这就是你需要的

", ".join(names)

下面的函数将接受一个列表并返回列表项的字符串。 然后可以将其用于日志记录或打印目的。

def listToString(inList):
    outString = ''
    if len(inList)==1:
        outString = outString+str(inList[0])
    if len(inList)>1:
        outString = outString+str(inList[0])
        for items in inList[1:]:
            outString = outString+', '+str(items)
    return outString

一般解决方案,适用于非字符串数组:

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