【问题标题】:How do I join a list of integers?如何加入整数列表?
【发布时间】:2023-03-10 10:54:01
【问题描述】:

我的代码的目的是列出所有可能的 4 位数字 (0000-9999),这很容易做到。

i = 0
gen = []
while i <= 9999: 
    gen.append(i)
    i = i + 1

for cycle in gen:
    format(cycle, '04')

但是,它将每个数字打印在自己的行上,我希望它打印在一个大字符串中。所以我的问题是如何加入我的整数列表,以便它打印成一个大字符串?我在 Windows 上运行 Python 3.3。

【问题讨论】:

  • 单线:"".join([format(x, '04') for x in range(0,10000)])

标签: python list join append


【解决方案1】:

所以,有一个函数range,它为你构建了一个生成器;例如:range(0,10000) 将生成从 0 开始的 10,000 个整数(包括 0 到 9999)。

注意范围对象不是一个列表,它是一个生成列表的函数。你可以做一个列表:

list(range(0,10000))

这会让你得到类似的东西

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 9999]

您可以使用列表推导来格式化列表中的每个条目:

[format(x, '04') for x in range(0,10000)]

这会给你一个字符串列表,如:

['0000', '0001', '0002', '0003', '0004', ...

然后将字符串列表连接在一起,有一个名为join的函数。您想在每个数字之间放置空字符串,因此您可以这样称呼它:

"".join([format(x, '04') for x in range(0,10000)])

你得到你的输出:

00000001000200030004000500060007 ... 9999

【讨论】:

  • 好答案。值得一提的是,您也可以将它们与其他字符或字符串连接起来,", ".join(... 会用逗号连接它们,然后在每个字符之间加一个空格
  • 我知道范围和连接函数,只是不知道在这种情况下如何正确实现它们。非常感谢!
  • 另外你也不需要在join中构造列表。只需"".join(format(x, '04') for x in range(0,10000)) 就足够了,而且效率更高。见generator expressions
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
  • 2020-06-10
  • 2020-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多