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

Isu*_*uru 134 python list

我有一个Python列表,例如

names = ["Sam", "Peter", "James", "Julian", "Ann"]
Run Code Online (Sandbox Code Playgroud)

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

names = ["Sam", "Peter", "James", "Julian", "Ann"]
print (names)
Run Code Online (Sandbox Code Playgroud)

将输出作为;

["Sam", "Peter", "James", "Julian", "Ann"]
Run Code Online (Sandbox Code Playgroud)

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

Sam, Peter, James, Julian, Ann
Run Code Online (Sandbox Code Playgroud)

注意:它必须在一行中.

Fat*_*ror 206

print(', '.join(names))
Run Code Online (Sandbox Code Playgroud)

这听起来像只需要列表中的所有元素并将它们连接起来', '.

  • 如果 `names` 中的某些元素不是字符串,请改用 `print(', '.join(map(str,name)))` 。 (28认同)
  • 这个评论非常有用。 (3认同)

小智 63

这是一个简单的.

names = ["Sam", "Peter", "James", "Julian", "Ann"]
print(*names, sep=", ")
Run Code Online (Sandbox Code Playgroud)

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

  • 在`python 2.7.6`中,这是一个`SyntaxError:invalid syntax`. (8认同)
  • 这是正确的答案,因为它也适用于非字符串。 (4认同)
  • @FredrickGauss 如果添加`from __future__ import print_function`,它也可以在python 2 中使用。 (2认同)

Ste*_*ett 37

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

>>> print str(names)[1:-1]
'Sam', 'Peter', 'James', 'Julian', 'Ann'
Run Code Online (Sandbox Code Playgroud)

  • 这不符合规定的要求.请注意OP的示例显示没有引号的结果名称. (9认同)
  • `str(names)`生成一个类似`['Sam','Peter'...'Ann']`的字符串。我们不希望使用方括号,因此请从第二个字符切到倒数第二个字符。 (2认同)

kri*_*sad 21

如果输入数组是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
>>>
Run Code Online (Sandbox Code Playgroud)

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


lye*_*rox 16

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

>>> print(*names, sep = ', ')
Run Code Online (Sandbox Code Playgroud)

另一个在下面

>>> print(', '.join(names))
Run Code Online (Sandbox Code Playgroud)


use*_*064 10

这就是你需要的

", ".join(names)
Run Code Online (Sandbox Code Playgroud)

  • 它将结果用引号引起来。 (2认同)

Vin*_*Sai 6

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

str(a)[1:-1] # '1, 2, 3, 4'
Run Code Online (Sandbox Code Playgroud)

要么

str(a).lstrip('[').rstrip(']') # '1, 2, 3, 4'
Run Code Online (Sandbox Code Playgroud)

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

将其转换回列表

a = '1,2,3,4'
import ast
ast.literal_eval('['+a+']')
#[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)


小智 6

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

    arr = [1, 2, 3, 4, 5]    
    print(', '.join(map(str, arr)))
Run Code Online (Sandbox Code Playgroud)

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

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

    arr = ["Ram", "Mohan", "Shyam", "Dilip", "Sohan"]
    print(', '.join(arr)
Run Code Online (Sandbox Code Playgroud)

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


pra*_*pxi 5

打印(*名称)

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


Ale*_*aev 5

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

names = ["Sam", "Peter", "James", "Julian", "Ann"]  
print(*names)
Run Code Online (Sandbox Code Playgroud)

输出:

Sam Peter James Julian Ann
Run Code Online (Sandbox Code Playgroud)