Python 在一行中打印列表项

Python 在一行中打印列表项,python,Python,我想把清单打印成一行。我使用简单的打印,但当它是f打印时就不起作用了。请问我怎么能做到?多谢各位 list = ["A", "B", "C"] print(*[n for n in list], sep=", ") print(f"Item was added: {*[n for n in nazvy]}") 使用 输出 A, B, C Item was added: A, B, C 注意

我想把清单打印成一行。我使用简单的打印,但当它是f打印时就不起作用了。请问我怎么能做到?多谢各位

list = ["A", "B", "C"]

print(*[n for n in list], sep=", ")

print(f"Item was added: {*[n for n in nazvy]}")
使用

输出

A, B, C
Item was added: A, B, C
注意:尽量不要使用内置关键字作为变量名。例如:
列表


您的代码无法工作,因为f-string不允许带星号的表达式或解包

同时

print(*[n for n in list], sep=", ")
工作,因为它转换为以下由于列表解包

print('A', 'B', 'C', sep=", ")
使用“end=”而不是“sep=”

我建议:

list = ["A", "B", "C"]
print(f'Item was added: {",".join(str(x) for x in list)}')
print(f'Item was added: {", ".join(str(x) for x in list)}')
根据关于这一问题的公认答案:

您可以使用
*list
将每个值发送到打印语句。使用这种方法,您不必担心将数据转换为字符串

有了它,你就可以

mylist = ["A", "B", "C", 4, 5, 6]

print(*my_list, sep=", ")
其输出将为:

A, B, C, 4, 5, 6
('A', 'B', 'C', 4, 5, 6)
如果要使用fstring,还可以尝试提供:

print(f'{*mylist,}')
其输出将为:

A, B, C, 4, 5, 6
('A', 'B', 'C', 4, 5, 6)
请注意,它使用括号
()
打印

有关解包f-string的更多详细信息,请参阅Stackoverflow上的文章

另外,请尽量避免将变量命名为
list
。稍后,当您想要将数据转换为列表时,它会变得混乱

例如:

x = {1:5,2:10,3:15}
y = list(x)
print (y)

将字典
x
转换为列表
y

完美谢谢。我想使用f打印,但它也适用于此。print(f“Item was added:{','.join(list)}”)如何
str(x)
添加任何值?@Vishnudev-str(x)是腰带和大括号-防御性编码-因此,如果列表中包含一个数字,则每个迭代都会被统一、干净地处理。我建议明智的做法是永远不要假设数据是一种或另一种结构,否则会有很多重写。我同意你的看法。但对于这个问题,如果OP给出了一个具有相同数据结构的列表,即
str
,则会产生最小的时间开销。此外,这里没有一个代码适合所有人,因为列表中的一个项目很可能是另一个列表。考虑所有可能性是没有界限的。因此,对于我们现在拥有的东西,我们遵循亲吻(保持简单愚蠢)规则。顺便说一句:你可以让它变得更简单<代码>打印(*list,sep=“,”)将为您提供
A、B、C
这是否回答了您的问题?