【问题标题】:How to use ', '.join(var) on integers in Python 3? [duplicate]如何在 Python 3 中对整数使用 ', '.join(var)? [复制]
【发布时间】:2016-06-03 11:20:07
【问题描述】:

我从this question 了解到,可以在 Python 中使用", ".join(var) 将值连接到数组中。此代码适用于字符串,例如:

var = ["hello","world"]
print (", ".join(var))

给出hello, world 的输出,这正是我想要的。

但是,当我在数组中使用数字时:

var = [1,2,3]
print (", ".join(var))

它给出了一个错误信息:

Traceback (most recent call last):
  File "C:\path\test.py", line 2, in <module>
    print (", ".join(var))
TypeError: sequence item 0: expected str instance, int found

然而,我希望输出是:

1, 2, 3

我还有其他方法可以打印所有数字,并且还可以增加数字,这样我就可以拥有任意数量的数字?

【问题讨论】:

  • 在我的头顶我想你想要:var = ["1,2,3"]
  • 因为str.join(string iterable) ,它不需要数字。

标签: python arrays python-3.x


【解决方案1】:

只需将joining之前的数字转换为字符串:

var = [1, 2, 3]
print(", ".join(map(str, var)))

或使用列表推导:

print(", ".join([str(x) for x in var]))

【讨论】:

  • 不需要列表推导,你可以直接提供一个生成器表达式:print(",".join(str(x) for x in var))
  • Map (稍微)快一些,所以如果 OP 正在寻找速度,这是更可取的(虽然不那么 Pythonic)答案。 stackoverflow.com/a/1247490/5388567
  • @burnpanck:如果您需要遍历所有项,使用列表推导式构建列表通常比使用生成器更快(除非结果列表非常大)。
  • @eugeney: ...这听起来很奇怪,因为如果您使用列表理解,您将遍历每个元素两次。然而,这似乎是真的。遗憾的是,我发现避免不必要的中间体的解决方案总是更优雅。
猜你喜欢
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 2018-07-10
  • 2021-09-24
  • 2020-08-22
  • 2017-05-29
  • 2022-10-12
  • 2017-11-11
相关资源
最近更新 更多