Python 如何在列表中逐个创建元素组合?

Python 如何在列表中逐个创建元素组合?,python,combinations,Python,Combinations,我有一个元素列表[1,2,3,4,5],我想一个接一个地生成组合,比如[1,2,3],[2,4,5],等等 我尝试使用itertools.combines,但这会列出所有可能的组合,这会占用太多的内存空间 如何在生成每个新组合时正确访问它 如何在生成每个新组合时正确访问它 对循环使用,如下所示: import itertools for a, b, c in itertools.combinations(range(1, 101), 3): if a**2 + b**2 == c**2:

我有一个元素列表[1,2,3,4,5],我想一个接一个地生成组合,比如[1,2,3],[2,4,5],等等

我尝试使用itertools.combines,但这会列出所有可能的组合,这会占用太多的内存空间

如何在生成每个新组合时正确访问它

如何在生成每个新组合时正确访问它

对循环使用
,如下所示:

import itertools
for a, b, c in itertools.combinations(range(1, 101), 3):
    if a**2 + b**2 == c**2:
        print(a, b, c)
itertools.combines
列出所有可能的组合

不,没有

itertools.combines()
是一个。在
for
循环中使用时,一次只返回一个结果。从未创建所有结果的
列表

如何在生成每个新组合时正确访问它

循环使用
,如下所示:

import itertools
for a, b, c in itertools.combinations(range(1, 101), 3):
    if a**2 + b**2 == c**2:
        print(a, b, c)
itertools.combines
列出所有可能的组合

不,没有


itertools.combines()
是一个。在
for
循环中使用时,一次只返回一个结果。没有创建所有结果的
list

迭代
list(itertools.combines(a,3))
其中
a=[1,2,3,4,5]
是否要使用
generator
?但是itertools.combines是一个生成器,因此不应该存在内存问题?myList=[1,2,3,4,5]。list(itertools.combines(myList,3))提供了一个组合列表,[1,2,3],[2,3,4],[3, 4, 5]. 这对于小型MyList很有效,但对于包含数千个组合的列表,它会占用大量内存空间和时间。我想检查每个数字的组合是否可以构成一个有效的三角形。所以我想生成一个组合,检查它,如果它合适就停止,而不是列出所有组合然后检查它们。迭代
列表(itertools.combines(a,3))
其中
a=[1,2,3,4,5]
是否要使用
生成器
?但是itertools.combines是一个生成器,因此不应该存在内存问题?myList=[1,2,3,4,5]。list(itertools.combines(myList,3))提供了一个组合列表,[1,2,3],[2,3,4],[3, 4, 5]. 这对于小型MyList很有效,但对于包含数千个组合的列表,它会占用大量内存空间和时间。我想检查每个数字的组合是否可以构成一个有效的三角形。所以我想生成一个组合,检查它,如果合适就停止,而不是列出所有组合,然后检查它们。你不会说你是在使用Python2还是Python3range()
返回生成器对象range()
返回一个
列表。如果要节省内存,请在Python2.N.b中使用
xrange()
。你不会说你是在使用Python2还是Python3range()
返回生成器对象range()返回一个
列表。如果要节省内存,请在Python2中使用
xrange()