我可以在循环中将列表中的值添加到另一个列表中吗?

时间:2019-03-28 18:02:35

标签: python list encryption indexing

我正在尝试将列表中的值添加到其他列表中的其他值。因此,如果我在列表中有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 ...等等,并重复这些值。

希望这是有道理的。我不确定该如何解决这个问题。

1 个答案:

答案 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)