我想知道你是否可以帮我解决这个问题。
我有以下代码来表示所有可能的数字范围组合:
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)。
你能帮我解决这个问题吗?即使编辑提供的代码本身?
万分感谢
请您参考如下方法:
您的问题与实际生成组合完全不同。您想要的只是一种输出数据的特殊方式。您可以使用标准文件写入工具轻松完成此操作:
>>> combinations = [[1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]]
>>> for i, combination in enumerate(combinations):
with open(r'C:\Users\poke\Desktop\foobar\{0}.txt'.format(i), 'w+') as f:
for value in combination:
f.write(str(value) + '\n')
