Changing key of dictionary while comparing its values (list) with another list
一方面,我有 1 个包含 100 个键的字典,每个键后面都有一个包含更多条目的列表:
1
2 3 |
dict1 = {"/*** Hello1 ***/": ["1","2","3","4"….],
"/*** Hello2 ***/": ["1","2","3","4"….] "/*** Hello2 ***/": ["1","2","3","4"….]} |
dict 的键是具有奇怪语法的字符串(在 .c 文件头中,这就是为什么它们在其中包含 /***)。
另一方面,我有一个列表,其中包含字典的所有键值,但只有核心值:
1
|
list1 = ["Hello3","Hello2","Hello1"]
|
字典和列表都是无序的,可能是dict1中有键,而list1不包含!
有没有一种快速的方法来比较 dict1 的键和 list1 的值,并将 dict1 的键更改为 list1 的匹配条目?
像这样?:
1
2 3 4 |
for x in list1:
for y in dict1: if x in y: dict1[x] = dict1.pop(y) |
错误:迭代期间字典大小改变
不明白我该如何解决它…
非常感谢!
编辑:是否只能通过创建新字典并简单地添加给定值来实现?抱歉没提!
您可以遍历您的 dict 副本以避免您的特定问题:
1
2 3 4 |
for x in list1:
for y in dict1.copy(): if x in y: dict1[x] = dict1.pop(y) |
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/267934.html