<p>当您执行<code>for item in value:</code>操作时,您正在修改正在迭代的相同列表。<br/>
相反,您需要迭代<code>value[:]</code>,它返回数组的一个副本</p>
<pre><code>word_dict = {'show': ['exhibit', 'note', 'point to', 'indicate', 'reveal', 'demonstrate'], 'slow': ['unhurried', 'leisurely', 'behind', 'slack'],
'dangerous': ['perilous', 'hazardous', 'uncertain']}
def main():
edited_synonyms = remove_word(word_dict)
print(edited_synonyms)
def remove_word(word_dict):
for key, value in word_dict.items():
#Iterate on copy of value
for item in value[:]:
if len(item) <= 7:
value.remove(item)
return word_dict
main()
</code></pre>
<p>输出将是</p>
<pre><code>{
'show': ['point to', 'indicate', 'demonstrate'],
'slow': ['unhurried', 'leisurely'],
'dangerous': ['perilous', 'hazardous', 'uncertain']
}
</code></pre>
<p>另一种方法是创建一个新列表,将带有<code>len>7</code>的单词添加到列表中,并将列表分配给字典的键</p>
<pre><code> word_dict = {'show': ['exhibit', 'note', 'point to', 'indicate', 'reveal', 'demonstrate'], 'slow': ['unhurried', 'leisurely', 'behind', 'slack'],
'dangerous': ['perilous', 'hazardous', 'uncertain']}
def main():
edited_synonyms = remove_word(word_dict)
print(edited_synonyms)
def remove_word(word_dict):
for key, value in word_dict.items():
#List of holding words with len more that 7
li = []
for item in value:
#Add words with len more than 7 to the list
if len(item) > 7:
li.append(item)
#Assign the list to the key
word_dict[key] = li
return word_dict
main()
</code></pre>