从字典列表中获取值

时间:2018-12-27 12:43:14

标签: python-3.x

这是一个简单的问题示例,我有一个关于tu如何访问字典列表中的值的问题。我想仅在'sprite'等于10时才更改color的值make()只是一个代表我如何将字典保存在列表中的函数,已从我的较大程序中简化了,但事实是当我尝试将'sprite'的值均等为10时,它给我一个错误,有了这个小程序,我只想找出如何在不给我任何错误的情况下做到这一点。谢谢

tortugas =[]
def make():
    tortuga = {}
    tortuga['sprite'] = 10
    tortuga['color']= "pink"
    tortuga['angulo'] = 90
    tortugas.append(tortuga)
    perro= {}
    perro['sprite']= 8
    perro['color']= "black"
    perro['angulo']= 5
    tortugas.append(perro)
alex= make()
print(tortugas)
color="red"
for n in tortugas:
    if 10==tortugas[0]['sprite']:
        for m in tortugas[n]:
            tortuga['color']= color

这段代码给我这个错误: TypeError:列表索引必须是整数或切片,而不是第16行的str

更简单的是,就像这样:

tortugas=[{'sprite': 10, 'color': "pink},{'sprite':8,'color':"blue"}]
color="red"
for n in tortugas:
    if tortugas[n]['sprite']== 10:
        for m in tortugas[n]:
            tortuga['color']= color

我只想在这种情况下而不是所有词典都改变第一本词典的颜色。

1 个答案:

答案 0 :(得分:1)

出现错误是因为使用

for n in tortugas:

n的值为{'sprite': 10, 'color': "pink"},因此,您不能使用tortugas[n]

如果您希望n作为列表的索引,请使用for n in range(len(tortugas)) insead。