簡體   English   中英

在將字典的值(列表)與另一個列表進行比較的同時更改字典的鍵

[英]Changing key of dictionary while comparing its values (list) with another list

一方面,我有1本字典,其中包含100個鍵,每個鍵后面都有一個包含更多條目的列表:

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

字典的鍵是具有奇怪語法的字符串(在.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)

錯誤:字典在迭代過程中更改了大小

不知道如何解決...

非常感謝!

編輯:是否只能通過創建新字典並簡單地添加給定值來實現? 抱歉不提!

您可以遍歷字典的副本來避免特定的問題:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM