将字典的前n项复制到另一个字典中

时间:2015-04-26 15:31:14

标签: python

这是一个简单的问题,但我无法在python中编写代码。我想将前n个项目(假定为100个),即值和键复制到另一个空字典中。我会更清楚地了解这一点。我创建了一个字典并使用OrderedDict对其进行了排序。我的排序代码是:

ordP = OrderedDict(反向(排序(wcP.items(),key = lambda t:t [1])))

这里ordP是我得到的有序词典。这是降序排列。而我原来的字典是wcP。我想把ordP的前100个值,即ordP的前100个最大值(按键排序)放在一个新词典中。

2 个答案:

答案 0 :(得分:4)

字典不是订购的,但如果您只想随机选择:

new_values = dict(your_values.items()[:n])

或者,对于那些痴迷于懒惰的人:

import itertools
new_values = dict(itertools.islice(your_values.iteritems(), n))

如果您想要强制使用某种特定类型,请定义一个获取键和值的键函数。人们通常做lambdas,但没有理由你不能使用完整的功能。

def example_key_func((key, value)):
    return key * value

new_dict = dict(sorted(your_values.items(), key=example_key_func)[:n])

答案 1 :(得分:1)

n = 100
assert len(d.keys()) >= n
dic100 = {k:v for k,v in list(d.items())[:n]}