簡體   English   中英

有沒有辦法將字典列表轉換為一組字典?

[英]Is there a way to convert a list of dicts to a set of dicts?

我想將一個字典列表轉換為一組字典。

例如:

我有以下列表:

my_list = [{k1:v1, k2:v2}, {k3:v3, k4:v4}]

我只是想輕松地將其轉換為一組這些字典。

只要我的列表包含像字符串這樣的簡單數據,就沒有問題:

new_list = set(myList)

但是,如果他們持有 dicts,他們就會落在

TypeError: unhashable type: 'dict'

我寧願不迭代列表並將每個項目添加到集合中。 我寧願有一個直接的方法,它也將支持例如字符串列表。

那可能嗎?

由於錯誤表明集合中的元素必須是可散列的,這意味着必須具有唯一的 id(由hash 方法給出)。 你可以創建你自己的字典擴展 class 給字典一個 hash,例如它的所有鍵的 hash。 或者在將其轉換為集合之前測試/過濾您的列表。 簡而言之,集合不能包含字典。

Python 沒有內置的“frozendict”類型。 如果您真的想模擬 freezeddict 會做什么,那么您可能想要存儲一個 dict 的可散列等效項。 例如:

my_list = [{k1:v1, k2:v2}, {k3:v3, k4:v4}]

my_set = set(frozenset(d.items()) for d in my_lst)

如果你想找回你的聽寫,你需要做的就是:

my_list = list(map(dict, my_set))

暫無
暫無

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

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