list_color=['Red','Blue','Green']
for i ,b in enumerate(list_color,1):
if i<=2:
dict ={b:i}
else:
break
i+=1
print(dict)
输出:我所要的输出像{ '红':1, '蓝':2, '绿':3} .I'm只得到{ '绿色':3}
{'Green':3}
list_color=['Red','Blue','Green']
for i ,b in enumerate(list_color,1):
if i<=2:
dict ={b:i}
else:
break
i+=1
print(dict)
输出:我所要的输出像{ '红':1, '蓝':2, '绿':3} .I'm只得到{ '绿色':3}
{'Green':3}
我不知道为什么你在for循环这么多的语句,所以我给一个简单的例子:
list_color=['Red','Blue','Green']
dict={}
for i ,b in enumerate(list_color,1):
dict[b] = i
print(dict)
请注意,我如何定义字典是一个空的字典前循环。我改变的另一件事是你给字典赋值的方式。每次作业都覆盖字典的完整内容。我现在正在展示如何为字典添加值。
我推荐一个像http://www.pythontutor.com/visualize.html这样的网站,它允许可视化代码的执行。然后你可以根据你的期望看到发生了什么事情/错误/不是。
您告诉口译员重新分配名称dict
具有新的值,而不是更新字典。
dict = {b:i} # we talk about this line
为了创建基于另一个迭代,内涵对象中去,在这种情况下字典解析典型方式:
colors = ['Red','Blue','Green']
d = {color: idx for idx, color in enumerate(colors, 1)}
# {'Blue': 2, 'Green': 3, 'Red': 1}
订单不能保持,因为字典是无序的数据结构体。
另外,尽量避免基于内建命名您的对象,当使用dict
名称时,它会影响dict
builtin function。
也不使用内置名称... – Copperfield