我需要在字典上做一个不"自然"的操作,所以我想知道什么是最好的pythonic方法来做到这一点.
我需要通过删除具有相同值的所有键来简化字典(键是不同的,值是相同的)
例如:输入:
dict = {key1 : [1,2,3], key2: [1,2,6], key3: [1,2,3]}
Run Code Online (Sandbox Code Playgroud)
预期产量:
{key1 : [1,2,3], key2:[1,2,6]}
Run Code Online (Sandbox Code Playgroud)
我不关心删除哪个键(例如:key1或key3)
交换密钥和值; 重复的键值对将作为副作用删除(因为字典不允许重复的键).再次交换密钥和值.
>>> d = {'key1': [1,2,3], 'key2': [1,2,6], 'key3': [1,2,3]}
>>> d2 = {tuple(v): k for k, v in d.items()} # exchange keys, values
>>> d = {v: list(k) for k, v in d2.items()} # exchange again
>>> d
{'key2': [1, 2, 6], 'key1': [1, 2, 3]}
Run Code Online (Sandbox Code Playgroud)
注意:tuple(v)使用因为list不可清洗; 不能直接用作密钥.
顺便说一句,不要dict用作变量名.它将影响内置函数/类型dict.
| 归档时间: |
|
| 查看次数: |
2434 次 |
| 最近记录: |