Jac*_*ahn 0 python dictionary loops list
给定字典 d 和列表 lst,从字典中删除所有键是 lst 元素的元素。列表中任何不是字典键的元素都应该添加到与变量 not_found 关联的新集合中。例如,给定字典 {1:2, 3:4, 5:6, 7:8} 和列表 [1, 6, 7],结果字典将是 {3:4, 5:6} 和set not_found 将包含 6。
这是我的代码的样子:
not_found = ()
for i in d:
if d[i] in lst:
not_found.append(d[i])
del d[i]
Run Code Online (Sandbox Code Playgroud)
您不想dict在迭代时删除任何元素。此外,您最好通过迭代lst而不是字典d来利用其恒定时间查找。你现在这样做的方式是迭代 dict 然后迭代列表,每次。这并不理想。尝试类似的东西,
not_found = set()
for e in lst:
if e in d:
del d[e]
else:
not_found.add(e)
print d # {3: 4, 5: 6}
print not_found # set([6])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6390 次 |
| 最近记录: |