【发布时间】:2013-01-17 10:14:31
【问题描述】:
我想知道你是否可以帮我解决这个问题。
我有以下代码来表示数字范围的所有可能组合:
import itertools
lst = [1, 2, 3]
combs = []
for i in xrange(1, len(lst)+1):
els = [list(x) for x in itertools.combinations(lst, i)]
combs.extend(els)
问题是它以
的形式表示输出[[1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]]
在单独的文本文件中表示每个组合对我来说将是非常有益的。每个文本文件在一行中表示组合中的每个数字。如 (1,2),1 在第一行,2 在第二行,不加逗号。
非常感谢您对我的帮助。
编辑
感谢百万人的帮助。感激不尽。
我还有一个小问题要在这里解决。
对于 Poke 解决方案,这很棒,但有一个小问题(我的说明错误)
文件的输出是:
[[1], [2], [3]]
[[1, 2], [1, 3], [2, 3]]
[[1, 2, 3]]
问题是我需要将代码用于大量组合 (6-39)。
你能帮我解决这个问题吗?即使编辑提供的代码本身?
提前百万感谢
【问题讨论】:
-
请不要为您的问题提供更多信息的答案,而是编辑您的问题。我已将新信息添加到问题中,并将您的答案标记为删除。
-
那么,你真的想要有多个文件,还是只有一个文件,所有组合都在第 1 行,所有单元素组合,所有 2 元素组合在第 2 行,...?
-
因为我可能有大量的组合。最好分配组合变量以从文件中获取整个组合。对于输出,它将如前所述。因此,您的代码是唯一的,但我可以从文件中分配组合变量。谢谢!
-
您打算如何处理这些文件?如果它们的数量很大,可能会有更好的方法来解决您的问题。
-
@arbautjc 好的。我需要实现的是我需要找到范围 [6-39] 的所有可能组合。然后,对于每个组合都应该写在一个单独的文件中。每个文件在单独的行中都有组合编号(如前所述)。这些文件和数字需要由我设计的程序访问。请帮助我。谢谢!
标签: python combinations itertools