如何使循环按顺序更改列表中的项目?

时间:2015-05-20 12:28:37

标签: python list loops

我想创建一个循环,每次运行时,列表中的相应项都会更改。

例如:

list=[10, 20, 30]  

第一次运行将添加1到10个 第二行将从20减去5 第三次运行将增加2到30个 然后循环重新开始。

我该怎么做?谢谢你的回答!

3 个答案:

答案 0 :(得分:3)

您可以像这样使用built-in zip function

changes = [1, -5, 2]
data = [10, 20, 30]

result = [(a + b) for a, b in zip(data, changes)]

然后

>>> result
[11, 15, 32]

如果你想在循环中这样做,请继续:

while <your condition>:
    data = [(a + b) for a, b in zip(data, changes)]

答案 1 :(得分:1)

作为一个简单示例,您可以创建规则dict add为每个索引添加每个值。

rules = {1: 1, 2: -5, 3: 2}
my_list = [10, 20, 30]

print [v + rules[i+1] for i, v in enumerate(my_list[:])]

我们将迭代每个索引并添加rules的对应规则,如果rules字典中的密钥不存在,您将获得raise KeyError

您可以在lists here和python list comprehension here

上阅读更多内容

答案 2 :(得分:1)

请尝试以下代码:

for i in range(len(l)):
if i == 0:
    l[0] += 1
elif i == 1:
    l[1] -= 5
elif i == 2:
    l[2] += 2

print l