python中字典的键是唯一的吗,Python:在字典中查找具有唯一值的键?

I receive a dictionary as input, and want to return a list of keys for which the dictionary values are unique in the scope of that dictionary.

I will clarify with an example. Say my input is dictionary a, constructed as follows:

a = dict()

a['cat'] = 1

a['fish'] = 1

a['dog'] = 2 #

a['bat'] = 3

a['aardvark'] = 3

a['snake'] = 4 #

a['wallaby'] = 5

a['badger'] = 5

The result I expect is ['dog', 'snake'].

There are obvious brute force ways to achieve this, however I wondered if there's a neat Pythonian way to get the job done.

解决方案

I think efficient way if dict is too large would be

countMap = {}

for v in a.itervalues():

countMap[v] = countMap.get(v,0) + 1

uni = [ k for k, v in a.iteritems() if countMap[v] == 1]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值