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

时间:2012-06-24 13:59:29

标签: python list

我有一个Python列表 e.g。

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

我想在没有正常“[]

的情况下在一行中打印数组
names = ["Sam", "Peter", "James", "Julian", "Ann"]
print (names)

将输出为;

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

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

Sam, Peter, James, Julian, Ann

注意:它必须在一行中。

13 个答案:

答案 0 :(得分:179)

print(', '.join(names))

听起来,这只是获取列表中的所有元素,并将它们与', '连接起来。

答案 1 :(得分:52)

这是一个简单的问题。

student:tstudentr;

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

答案 2 :(得分:35)

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

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

答案 3 :(得分:19)

如果输入数组是整数类型,那么您需要先将数组转换为字符串类型数组,然后使用join方法加入{{1或者空间无论你想要什么。 e.g:

,

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

答案 4 :(得分:15)

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

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

另一个在

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

答案 5 :(得分:9)

这就是你需要的

", ".join(names)

答案 6 :(得分:3)

You need to loop through the list and use end=" "to keep it on one line

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

答案 7 :(得分:2)

  

打印(*名称)

这将在python 3中工作 如果要以空格分隔的方式将它们打印出来。 如果您需要逗号或其他之间的逗号,请继续使用.join()解决方案

答案 8 :(得分:1)

','.join(list)仅在列表中的所有项目均为字符串时才有效。如果您希望将数字列表转换为逗号分隔的字符串。例如将a = [1, 2, 3, 4]插入'1,2,3,4',那么您可以

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

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

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

将其转换回列表

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

答案 9 :(得分:1)

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

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

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

对于字符串类型的数组,我们需要直接使用join函数以获取没有括号的干净输出。

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

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

答案 10 :(得分:0)

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

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

输出:

  

Sam,Peter,James,Julian,Ann

答案 11 :(得分:0)

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

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

答案 12 :(得分:0)

尝试在带有打印语句的列表名称前使用星号:

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

输出:

Sam Peter James Julian Ann