我正在尝试将列表中的值添加到其他列表中的其他值。因此,如果我在列表中有40个,在另一个列表中有8个,那么我希望能够在索引方面达到40-8。棘手的部分是我试图循环执行,每次使用不同的值。
listOfDigits = [40, 50, 60, 70, 80, 90, 100, 110, 120]
listOfValues = [8, 5, 7, 1, 4, 9]
我希望能够从40中减去8,然后再将5加到50,然后再将60从7中减去。...直到循环9到80...。一旦我超过了“值列表”中的最后一个值,我希望它重新开始,即从100中减去8,然后将5加到110 ...等等,并重复这些值。
希望这是有道理的。我不确定该如何解决这个问题。
答案 0 :(得分:1)
这是结合zip()
,cycle()
和enumerate()
的绝佳机会。
cycle()
将确保您的“重新开始”要求。
zip()
允许您同时迭代两个列表。
enumerate()
用于决定添加或减去值。
from itertools import cycle
digits = listOfDigits
values = cycle(listOfValues)
for i, (digit, value) in enumerate(zip(digits, values)):
if i % 2 == 0:
print(digit - value)
else:
print(digit + value)