这是一个简单的问题,但我无法在python中编写代码。我想将前n个项目(假定为100个),即值和键复制到另一个空字典中。我会更清楚地了解这一点。我创建了一个字典并使用OrderedDict对其进行了排序。我的排序代码是:
ordP = OrderedDict(反向(排序(wcP.items(),key = lambda t:t [1])))
这里ordP是我得到的有序词典。这是降序排列。而我原来的字典是wcP。我想把ordP的前100个值,即ordP的前100个最大值(按键排序)放在一个新词典中。
答案 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]}