簡體   English   中英

Python將列表的字典轉換為集合的字典?

[英]Python convert dict of lists to dict of sets?

我有:

myDict = {'a': [1,2,3], 'b':[4,5,6], 'c':[7,8,9]}

我想要:

myDict = {'a': set([1,2,3]), 'b':set([4,5,6]), 'c':set([7,8,9])}

我可以使用單行代碼來執行此操作,而不是遍歷它並轉換值的類型嗎?

無論如何,您都必須循環:

{key: set(value) for key, value in yourData.items()}

如果您使用的是Python 3.6+,則還可以執行以下操作:

dict(zip(myDict.keys(), map(set, myDict.values())))

沒有循環就無法做到這一點,但是可以使用以下代碼在一行中完成循環:

myDict = {k:set(v) for k, v in myDict.items()}

這基本上是遍歷字典中的每個項目,並將列表轉換為集合,然后將key(str):value(set)對組合為新字典,並將其分配回myDict變量。

您可以對其進行理解:

基本上,循環遍歷鍵值對,並從每個值中為對應的鍵創建set。

>>> myDict = {'a': [1,2,3], 'b':[4,5,6], 'c':[7,8,9]}
>>> myDict = {k: set(v) for k, v in myDict.items()}
>>> myDict
{'a': {1, 2, 3}, 'b': {4, 5, 6}, 'c': {8, 9, 7}}

可以使用map通過將值映射到類型set

myDict = dict(map(lambda x: (x[0], set(x[1])), myDict.items()))

或同時使用任一版本的詞典理解

myDict = {k: set(v) for k, v in myDict.items()}
myDict = {k: set(myDict[k]) for k in myDict}

暫無
暫無

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

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