簡體   English   中英

刪除反向鍵的方法:python map 字典中的值對?

[英]Way to remove reversed key:value pairs in python map dict?

我環顧四周,要么忽略了某些東西,要么找不到解決方案。 通常我會避免發帖,但近兩天來我一直在努力解決這個問題。

我對 python 還是有些陌生,所以我可能在這里忽略了一些東西:

我有這個詞典:

dict = {'27': 28, '28': 27, '30' : 31, '31' : 30}

我想刪除重復的鍵:反轉的值。

所以對於最后的命令,我想:

dict = {'27': 28, '30' : 31}

因此,每個副本至少有一個鍵值對。

如果這是重復的帖子,我深表歉意,但我四處尋找答案,但沒有找到任何有用的東西,也沒有找到我可以解決的問題。

任何幫助深表感謝!

如果字典中有嚴格的順序(原點對/反轉對等),你可以使用這個:

data = {'27': 28, '28': 27, '30' : 31, '31' : 30}

l1 = list(data.items())[0::2]
dict(l1)

# {'27': 28, '30': 31}

對於多個鍵:

data = {'27': 28, '28': 27, '30' : 31, '31' : 30}

seen = set()
seen_add = seen.update

data = {key: v for key, v in data.items() if not (((k := int(key)), v) in seen or seen_add(((k, v), (v, k))))}

{'27': 28, '30': 31}

暫無
暫無

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

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