如何在 Python 中打印一个没有括号和逗号的列表?

989 阅读3分钟

问题的提出

给出一个Python 的元素列表

如果使用print([1, 2, 3]) 将列表打印到 shell 中,输出结果被括在方括号中,用逗号隔开,像这样。"[1, 2, 3]".

但是你想让这个列表不带括号和逗号,像这样。1 2 3.

print([1, 2, 3])
# Output: [1, 2, 3]
# Desired: 1 2 3

如何在 Python 中打印没有方括号和逗号分隔的列表?

方法1:将多个值解包到打印函数中

星号运算符 * 用于将一个可迭代的 值解包到一个给定函数的参数列表中。

你可以把所有的列表元素解压到 [print()](https://blog.finxter.com/python-print/ "Python print()")函数来单独打印所有的值,默认情况下用一个空位隔开(你可以用sep 参数来覆盖)。例如,表达式print(*my_list) 打印my_list 中的元素,用空位隔开,没有封闭的方括号,也没有分隔的逗号!

这里有一个例子。

my_list = [1, 2, 3]
print(*my_list)
# Output: 1 2 3

ℹ 注意:如果你想要一个不同的分隔符,你可以设置 [sep](https://blog.finxter.com/the-separator-and-end-arguments-of-the-python-print-function/)``print() 函数的参数。例如,print(*my_list, sep='|') 将使用竖条'|' 作为分隔符。

这里有一个例子。

my_list = [1, 2, 3]
print(*my_list, sep='|')
# Output: 1|2|3

你可以在以下视频中了解内置的 [print()](https://blog.finxter.com/python-print/ "Python print()")函数的来龙去脉,请看下面的视频。

方法2:字符串替换法

打印一个没有逗号和方括号的列表一个简单方法是,首先使用内置的 [str()](https://blog.finxter.com/python-str-function/)函数将列表转换为字符串。然后通过使用 [string.replace()](https://blog.finxter.com/python-string-replace-2/)方法修改列表的字符串表示,直到得到所需的结果。

这里有一个例子。

my_list = [1, 2, 3]

# Convert List to String
s = str(my_list)
print(s)
# [1, 2, 3]

# Replace Separating Commas and Square Brackets
s = s.replace(', ', '\n').replace('[', '').replace(']', '')

# Print List Without Commas and Brackets
print(s)

结果是一个没有逗号和没有括号的字符串。

1
2
3

方法3:用生成器表达式连接字符串

你可以打印一个没有方括号和逗号的列表。使用 [string.join()](https://blog.finxter.com/python-string-join/)方法在任何分隔符字符串上使用,如' ''\t' 。传递一个生成器表达式,使用内置函数将每个列表元素转换为字符串。 [str()](https://blog.finxter.com/python-str-function/)内置函数将每个列表元素转换成字符串。例如,表达式print(' '.join(str(x) for x in my_list)) 在没有括号和逗号的情况下向 shell 打印my_list

my_list = [1, 2, 3]
print(' '.join(str(x) for x in my_list))
# Output: 1 2 3

你可以修改你连接的分隔符字符串,以定制列表的外观。

my_list = [1, 2, 3]
print('xxx'.join(str(x) for x in my_list))
# Output: 1xxx2xxx3
  • [string.join(iterable)](https://blog.finxter.com/python-string-join/ "Python String join()")方法将给定的迭代器中的元素连接起来。
  • [str(object)](https://blog.finxter.com/python-str-function/ "Python str() Function")内置函数将一个给定的对象转换为其字符串表示。
  • 生成器表达式或列表理解是简洁的单行 方式,通过重复使用另一个迭代器中的元素来创建一个新的迭代器。