1

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

{ Key : (value1, value2) }

所以首先,我们必须根据前 10 个 value1 找到 key 的列表,然后我们必须根据前 10 个 value2 找到 key 的列表。

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

我们如何以pythonic方式做到这一点......

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

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

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

请帮忙..

4

3 回答 3

1
sorted(data.keys(), key=lambda x: data[x][1])[:10]
于 2012-04-24T14:15:54.827 回答
1

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

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

这应该会产生按值排序的前 10 个键,而不是字典中的键。

于 2012-04-24T14:31:52.713 回答
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])
于 2012-04-24T14:59:12.057 回答