【问题标题】:Create a list of all the lists whose entries are in a range in Python [closed]在 Python 中创建其条目在某个范围内的所有列表的列表 [关闭]
【发布时间】:2013-11-16 23:28:40
【问题描述】:

我们如何创建所有长度为 57 且条目为 5、6 或 7 的列表的列表?

有没有捷径可以做到这一点?

[更新] 我正在寻找一段代码来创建长度为 3^57 的列表,该列表由长度为 57 且条目为 5、6 或 7 的所有列表组成。

【问题讨论】:

  • 你能用一些示例输入和所需的输出来更新你的问题吗?
  • 您能给我们举一些此类列表的例子吗?
  • 一个例子是 [5, 6, 7, 7, 5, ..., 5, 7, 6](有 57 个条目)。

标签: python list


【解决方案1】:

您是否正在寻找[5, 6, 7] 的产品本身,57 次?

itertools.product() 为你做这件事:

from itertools import product

for combination in product([5, 6, 7], repeat=57):
    print combination

但是,打印所有输出需要一段时间。它最终会打印出所有 3 ** 57 == 1570042899082081611640534563 可能的组合。

但是,不要尝试创建包含所有可能组合的单个列表。在 64 位机器上一个这些列表占用 528 字节,因此所有列表总共占用大约 685719 泽字节(1 泽字节是 1024 ** 8 字节)的内存。技术还没有那么远。

【讨论】:

  • 是的,我正在寻找这个!非常感谢。
  • 在我的笔记本电脑上大约需要 1.7e+20 天才能完成
猜你喜欢
  • 2016-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
  • 2020-12-02
  • 1970-01-01
  • 2021-12-18
  • 2018-04-13
相关资源
最近更新 更多