问题的提出
如果使用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