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) |