这是一个简单的问题示例,我有一个关于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
我只想在这种情况下而不是所有词典都改变第一本词典的颜色。
答案 0 :(得分:1)
出现错误是因为使用
for n in tortugas:
n的值为{'sprite': 10, 'color': "pink"}
,因此,您不能使用tortugas[n]
。
如果您希望n作为列表的索引,请使用for n in range(len(tortugas))
insead。