更改字典的键,同时将其值(列表)与另一个列表

时间:2018-06-01 09:50:52

标签: python python-3.x list dictionary

一方面,我有 1个字典,有100个密钥,每个密钥后面都有一个包含更多条目的列表:

dict1 = {"/*** Hello1   ***/": ["1", "2", "3", "4"....],
         "/*** Hello2   ***/": ["1", "2", "3", "4"....]
         "/*** Hello2   ***/": ["1", "2", "3", "4"....]}

dict的键是具有奇怪外观的字符串(在.c文件头之外,这就是为什么它们中有/ ***)。

另一方面,我有一个列表,其中包含字典的所有键值,但只有核心值:

list1 = ["Hello3", "Hello2", "Hello1"]

字典和列表都是无序的,可能是dict1中有密钥,list1不包含密钥!

有没有一种快速的方法可以比较dict1的键和list1的值,并将dict1的键更改为list1的匹配条目?

这样的东西?:

for x in list1:
   for y in dict1:
      if x in y:
         dict1[x] = dict1.pop(y)

错误:字典在迭代期间改变了大小

不知道如何解决它......

非常感谢!

编辑:是否只能通过创建新词典并简单地添加给定值来实现?很抱歉没有提及!

1 个答案:

答案 0 :(得分:1)

你可以遍历你的dict副本以避免你的具体问题:

for x in list1:
   for y in dict1.copy():
      if x in y:
         dict1[x] = dict1.pop(y)