2016-09-18 37 views

回答

0

我不知道为什么你在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这样的网站,它允许可视化代码的执行。然后你可以根据你的期望看到发生了什么事情/错误/不是。

+0

也不使用内置名称... – Copperfield

2

您告诉口译员重新分配名称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