我有一个列表 (fullList) [5, 8, 9, 10, 5, 9, 10, 11, 8, 9, 13, 14, 9, 10, 13, 15, 10, 11, 14, 15 ] 和值 n, - 我想迭代前 (n) 4 个值,然后跳过 1 个数字,然后迭代下一个 4-1 个值,并跳过 2 个数字,然后迭代接下来的 4-2 个数字并跳过 3 个数字等...直到列表完全迭代。
我的最终答案应该是这样的:
[5,8,9,10,9,10,11,13,14,15]
可以通过取前 4 个值 (5,8,9,10),然后跳过 1 个计数 (5),然后取接下来的 3 个值 (9,10,11) 并跳过 2 个计数 (8) 来获得,9),然后取接下来的 2 个值 (13,14) 并跳过 3 个计数 (9,10,13),取下一个值 (15) 并跳过 4 个计数 (10,11,14,15)
--
编辑:我通过迭代较小列表 (listb) [2,3,6,7,8] 的值并通过将其与自身相加来获得 fullList。我已经解决了这一部分,但仍然想了解第一部分(上面)。
我希望达到以下结果:
2+3 = 5
2+6 = 8
2+7 = 9
2+8 = 10
3+6 = 9
3+7 = 10
3+8 = 11
6+7 = 13
6+8 = 14
7+8 = 15
谢谢!
最佳答案
您可以使用itertools.chain
from itertools import chain
x = [5, 8, 9, 10, 5, 9, 10, 11, 8, 9, 13, 14, 9, 10, 13, 15, 10, 11, 14, 15]
x = list(chain.from_iterable(x[4*idx + idx:4*idx + 4] for idx in range(4)))
对于第二部分,请使用 itertools.combinations
from itertools import combinations
x = [2,3,6,7,8]
for combo in combinations(x, 2):
a, b = combo
print(f"{a} + {b} = {sum(combo)}")
关于python - 以倒计时间隔跳过Python中的迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68232539/