根据值删除键值对

2024-09-27 09:34:50 发布

您现在位置:Python中文网/ 问答频道 /正文

a:{
   b:{cd:"abc",
      de:"rty"
     },
   c:{cd:"abc",
      de:"uuy"
     },
   d:{cd:"ap",
      de:"uy"
     }
  }

我想打印本词典中cd和de的值,如果cd的值相同,那么我只想打印一次。 预期产出:b 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)

这不起作用


Tags: 编辑getcddehashitemqueryap
3条回答

这段代码应该会有所帮助,我对JSON进行了一些格式化,使其成为有效的python字符串,但您应该能够根据自己的意愿对其进行修改

def getKeys(dict):     
  return [*dict] 

a = {
   'b':{'cd':"abc",
      'de':"rty"
     },
   'c':{'cd':"abc",
      'de':"uuy"
     },
   'd':{'cd':"ap",
      'de':"uy"
     }
  }
cd_list = []
keys = getKeys(a)

for key in keys:
  found = False
  for checked in cd_list:
    if a[key]['cd']==checked:
      found = True
      break
  if not found:
    print( f'{key} : {a[key]["cd"]} {a[key]["de"]}')
    cd_list.append(a[key]['cd'])

你可以试试这个

  dict={'a':{
  'b':{'cd':"abc",
  'de':"rty"
    },
  'c':{'cd':"abc",
   'de':"uuy"
   },
  'd':{'cd':"ap",
  'de':"uy"
 }
 }}
 count=0
 for key,item in dict.items():
   for key,i in item.items():
     if item['b']['cd']==i['cd']:
        count=count+1
        lis=i['cd']
   else:
        print(i['cd'])  
if(count>1):
   print(lis)

How can I check if the value of cd is repeated or not ?

如果您正在迭代内容,并且不想处理重复的内容,请保留一个容器,其中包含您已经看到的内容,如果已经看到,则跳过这些内容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)

相关问题 更多 >

    热门问题