需要根据值找出前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()
请帮助..
答案 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])