我已经使用itertools包中的组合功能生成了一个元组列表。如何将其传递给整数列表以对其进行切片?这是我的示例代码,但是由于元组而给我一个错误:

from itertools import combinations
myNumbers = [12,4,5,6,7,9,3,2]
listOfIndexes = list(range(8))
comb = combinations(listOfIndexes, 3)
for i in list(comb):
    print(myNumbers[int(i)])


我的预期输出是打印myNumbers中3个数字的所有组合,例如:

12,4,5
4,5,6
5,6,7
...

最佳答案

这有效:

from itertools import combinations
myNumbers = [12,4,5,6,7,9,3,2]
listOfIndexes = list(range(8))
comb = combinations(listOfIndexes, 3)
for i in list(comb):
  a,b,c = myNumbers[i[0]], myNumbers[i[1]], myNumbers[i[2]]
  print(a,b,c)


...但是据我所知,上面的代码只是以一种不太有效的方式做到这一点:

print([i for i in combinations(myNumbers, 3)])

10-08 11:34