用分隔符打印列表中的所有项

50 投票
8 回答
93977 浏览
提问于 2025-04-15 20:08

考虑这段Python代码,它是用来打印一个用逗号分隔的值的列表。

for element in list:
    print element + ",",

那么,怎样打印才能确保最后一个元素后面不出现逗号呢?

例如:

a = [1, 2, 3]
for element in a
  print str(element) +",",

output
1,2,3,
desired
1,2,3

8 个回答

15

在其他回答中提到的 ','.join 是典型的 Python 解决方案;不过,我奇怪的是,至今为止的回答中没有提到的常见方法是

print ','.join(str(x) for x in a)

这被称为生成器表达式,或者简称 genexp。

如果你更喜欢使用循环(或者因为其他原因需要用到循环,比如不仅仅是打印每个项目),当然还有很好的替代方法:

for i, x in enumerate(a):
  if i: print ',' + str(x),
  else: print str(x),

这是一个首次切换(适用于任何可迭代对象,无论是列表还是其他),所以它会在每个项目之前放置逗号,但第一个项目除外。最后一次切换稍微不那么优雅,并且只适用于那些可以使用 len() 的可迭代对象(不适用于完全通用的对象):

for i, x in enumerate(a):
  if i == len(a) - 1: print str(x)
  else: print str(x) + ',',

这个例子也利用了最后一次切换,在打印最后一个项目时结束这一行。

enumerate 这个内置函数非常有用,值得记住!

19

这非常简单:

print(*a, sep=',')

在Python中打印列表的四种不同方法

114

在编程中,有时候我们需要处理一些数据,这些数据可能是从用户那里输入的,或者是从其他地方获取的。为了让程序能够理解这些数据,我们通常会把它们转换成一种特定的格式。这种格式就像是给数据穿上了合适的衣服,让它们在程序中更好地工作。

比如说,如果你有一个数字,但程序需要的是字符串格式的数字,那么你就需要把这个数字转换成字符串。这样,程序才能正确地处理它。这个过程就叫做“类型转换”。

在不同的编程语言中,类型转换的方法可能会有所不同,但大体上都是为了让数据能够被正确地使用。理解这些基本概念,对于编程新手来说是非常重要的,因为它们会在你写代码的过程中经常遇到。

>>> ','.join(map(str,a))
'1,2,3'

撰写回答