python用逗号隔开输出_关于for循环:Python – 打印出用逗号分隔的列表

我正在编写一段代码,该代码将输出用逗号分隔的项目列表。使用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()串起来。将ITerable传递给print语句将ITerable作为一个参数进行字符串化。

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

['hello', 'world']

但是,如果您将星号放在可ITerable前面,这会将其分解为单独的参数,并允许预期使用sep。

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

hello cruel world

>>> print(*range(5), sep="---")

0---1---2---3---4

以join作为替代方案

使用给定分隔符将ITerable连接到字符串中的另一种方法是使用分隔符字符串的join方法。

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

hello cruel world

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

>>>print(",".join([str(i) for i in range(5)]))

0,1,2,3,4

蛮力-非Python

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

>>>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

你是说*range(5)吗?

是的,谢谢-会更新的

感谢您的回复!问题是我确实需要一个循环,我上面提供的代码是简单的代码。就在我提出问题的时候,我自己提出了一个解决方案。我做了一个字符串变量,我用逗号不断地向其中添加字符串,当循环上次运行时,我做了一个if语句,不向变量中添加逗号(我将所有字符串粘贴到该变量中)

没问题,它仍然可以在一定程度上简化您的代码来生成一个ITerable(列表?)使用循环,然后使用print将其呈现到控制台。不需要中间的字符串来保存逗号。

"用if语句连接的循环"方法非常笨拙。我要么选择print(*iterable, sep=",")要么选择print(",".join([str(i) for i in iterable]))。

您可以使用str.join()创建要打印的字符串,然后打印它。示例-

print(','.join([str(x) for x in range(5)]))

演示-

>>> print(','.join([str(x) for x in range(5)]))

0,1,2,3,4

我使用上面的列表理解,因为当与str.join一起使用时,它比生成器表达式更快。

str.join()对于从数据生成自定义字符串是一个很好的选择。但是,如果我们只是将字符串传递给print(),那么就没有必要了。只需使用print(*iterable, sep=",")。

为此,您可以使用str.join()。

In [1]: print ','.join(map(str,range(5)))

0,1,2,3,4

我们需要先将range(5)中的数字转换为字符串,以调用str.join()。我们用map()操作。然后我们用逗号,将从map()获得的字符串列表连接起来。

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值