gpt4 book ai didi

python - 打印以逗号分隔的列表,不带尾随逗号

转载 作者:太空狗 更新时间:2023-10-30 00:25:02 25 4
gpt4 key购买 nike

我正在编写一段代码,它应该输出一个用逗号分隔的项目列表。该列表是使用 for 循环生成的:

for x in range(5):
print(x, end=",")

问题是我不知道如何去掉列表中最后一个条目添加的最后一个逗号。它输出这个:

0,1,2,3,4,

如何删除结尾的,

最佳答案

sep="," 作为参数传递给 print()

打印语句就快完成了。

不需要循环,print有一个 sep 参数和一个 end

>>> print(*range(5), sep=", ")
0, 1, 2, 3, 4

一点解释

print 内置函数接受任意数量的项目作为要打印的参数。将打印任何非关键字参数,以 sep 分隔。 sep 的默认值是一个空格。

>>> print("hello", "world")
hello world

更改 sep 有预期的结果。

>>> print("hello", "world", sep=" cruel ")
hello cruel world

每个参数都像 str() 一样被字符串化。将可迭代对象传递给 print 语句会将可迭代对象字符串化为一个参数。

>>> print(["hello", "world"], sep=" cruel ")
['hello', 'world']

但是,如果您将星号放在可迭代对象前面,这会将它分解为单独的参数,并允许按预期使用 sep

>>> print(*["hello", "world"], sep=" cruel ")
hello cruel world

>>> print(*range(5), sep="---")
0---1---2---3---4

使用 join 作为替代方案

将可迭代对象连接到具有给定分隔符的字符串的替代方法是使用分隔符字符串的 join 方法。

>>>print(" cruel ".join(["hello", "world"]))
hello cruel world

这有点笨拙,因为它需要将非字符串元素显式转换为字符串。

>>>print(",".join([str(i) for i in range(5)]))
0,1,2,3,4

蛮力 - 非 pythonic

您建议的方法是使用循环连接字符串,并在整个过程中添加逗号。当然,这会产生正确的结果,但它的工作要困难得多。

>>>iterable = range(5)
>>>result = ""
>>>for item, i in enumerate(iterable):
>>> result = result + str(item)
>>> if i > len(iterable) - 1:
>>> result = result + ","
>>>print(result)
0,1,2,3,4

关于python - 打印以逗号分隔的列表,不带尾随逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32796452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com