[英]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.