python - 根据值移除键值对
问题描述
a:{
b:{cd:"abc",
de:"rty"
},
c:{cd:"abc",
de:"uuy"
},
d:{cd:"ap",
de:"uy"
}
}
我想从此字典中打印 cd 和 de 的值,如果 cd 的值相同,那么我只想打印一次。预期输出:b abc rty d ap uy
如何检查 cd 的值是否重复?
编辑 :
hash_set=set()
hash_item=v1.get('query_hash',{}).get('sha256', "")
if hash_item in hash_set:
break
else:
hash_set.add(hash_item)
这是行不通的
解决方案
如何检查 cd 的值是否重复?
如果您正在迭代内容并且您不想处理重复项,请保留一个包含您已经看过的内容的容器,如果已经看过则跳过它们。sets
是成员资格测试的优秀容器,因为查找是 O(1) 并且集合不允许重复。
这是一个玩具示例。
stuff = 'anjdusttnnssajd'
seen = set()
for thing in stuff:
if thing in seen:
continue
print(thing.upper()) # process thing
seen.add(thing)
或者您可以只制作一组要处理的事物,然后处理该集合中的事物。
stuff = set(stuff)
for thing in stuff:
print(thing.upper())
使用您的标准。
d = {'a':{'b':{'cd':"abc",'de':"rty"},
'c':{'cd':"abc",'de':"uuy"},
'd':{'cd':"ap",'de':"uy"}}}
seen = set()
for key,thing in d['a'].items():
cd,de = thing['cd'],thing['de']
if cd in seen:
continue
else:
print(key, cd, de)
seen.add(cd)
推荐阅读
- python - 如何将数据框中的值转换为值
- javascript - Javascript更改导航的CSS属性背景(materializeCSS)
- c# - NettopologySuite 和 Dotspatial WKTReader
- haproxy - 是否可以将 cookie 的散列值写入 haproxy 的标头?
- python - 嵌套字典字段中的前夕 0.8 `allow_unknown`
- matlab - 制作一个对数字中的数字求和的函数
- python - 在 0.8.8 之前的版本中创建页眉和页脚
- floating-point - 使用泛型类型时如何使用浮点数文字?
- android - 在我的应用中显示来自其他站点的数据
- angular - 错误 TS2304:找不到名称“MatPaginator”