字典中的字典和列表位置

Geo*_*ows -1 python dictionary

我需要获取一个列表并使用字典来编目列表中特定项目的位置,例如:

L = ['a','b','c','b','c','a','e']

字典需要包含以下内容:

D = {'a':0,5,'b':1,3,'c':2,4,'e':6}

但是,如果我使用我写的:

for i in range(len(word_list)):
    if D.has_key('word_list[i]') == False:
        D['word_list[i]'] = i
    else:
        D[word_list[i]] += i
Run Code Online (Sandbox Code Playgroud)

然后我得到一个单词的KeyError,我不明白为什么我应该得到一个错误.

Mal*_*lio 6

if D.has_key('word_list[i]') == False:
Run Code Online (Sandbox Code Playgroud)

呃,什么?

至少,你应该删除引号:

if D.has_key(word_list[i]) == False:
Run Code Online (Sandbox Code Playgroud)

但是你也滥用了许多Python结构:

  1. 为什么总结指数?
  2. 你为什么要与False比较?
  3. 你不应该使用 setdefault

像这样:

for i in range(len(word_list)):
   D.setdefault(word_list[i], []).append(i)
Run Code Online (Sandbox Code Playgroud)