前10个独特的字典键可以在值的基础上找到

时间:2012-04-24 14:05:56

标签: python dictionary hashmap

需要根据值找出前10个字典键....值是两个字段的元组..

{ Key : (value1, value2) }

首先,我们必须在前10个值1的基础上找到密钥列表,然后我们必须在前10个值2的基础上找到密钥列表。

然后我们必须找到list1和list2的集合,并返回列表...

我们怎样才能以pythonic的方式做到这一点...

或者我应该写完整的逻辑,做这些事情......

我写了一个解决方案: 字典是关键字:值对.....

dict(sorted(dict_mapping.iteritems(), key=lambda dict_mapping:dict_mapping[1]) [0:10]).keys()

请帮助..

3 个答案:

答案 0 :(得分:1)

sorted(data.keys(), key=lambda x: data[x][1])[:10]

答案 1 :(得分:1)

如果字典值是元组,python的sorted()将进行字典排序。这意味着,value1将用于排序,而value2将用于打破平局。

sorted(a.keys(), key=a.get)[:10]

这应该导致前10个键按值而不是字典中的键排序。

答案 2 :(得分:0)

data = {'key1': ('value1', 'value2'), 'key2': ('value3', 'value4')}

tmp = [sorted(data.keys(), key=lambda x: data[x][i])[:10] for i in (0, 1)]
result = set(tmp[0]+tmp[1])