我是python上的新手,所以我尝试在python中获取字典的前50个元素。 我有一个字典,按字母顺序递减顺序。
k=0
l=0
for k in len(dict_d):
l+=1
if l<51:
print dict
一个小例子:
dict_d={'m':'3','k':'4','g':'7','d':'9'}
获取新词典中的前3个元素:
new_dict={'m':'3','k':'4','g':'7'}
我找不到怎么做?
答案 0 :(得分:8)
dict_d = {...}
for key in sorted(dict_d)[:50]:
print key, dict_d[key]
答案 1 :(得分:0)
您可以使用50个任意元素(除非您使用OrderedDict
>>> from itertools import islice
>>> d = dict.fromkeys(range(-50, 50))
>>> list(islice(d, 50))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
我使用示例range(-50, 50)
来显示订单不可靠
答案 2 :(得分:0)
使用计数器进行快速循环应该可以解决问题:
count = 0
for key in my_dict:
if count < 50:
print my_dict[key]
count += 1
答案 3 :(得分:0)
将此与@ jamylak的答案进行对比,它只给你50个没有额外控制的键。在这里你可以得到最小的50个键
>>> d = dict.fromkeys(range(-50, 50))
>>> import heapq
>>> heapq.nsmallest(50, d)
[-50, -49, -48, -47, -46, -45, -44, -43, -42, -41, -40, -39, -38, -37, -36, -35, -34, -33, -32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1]
您可以通过向key=func
heapq.nsmallest
来订购不同的标准
>>> heapq.nsmallest(50, d, key=str)
[-1, -10, -11, -12, -13, -14, -15, -16, -17, -18, -19, -2, -20, -21, -22, -23, -24, -25, -26, -27, -28, -29, -3, -30, -31, -32, -33, -34, -35, -36, -37, -38, -39, -4, -40, -41, -42, -43, -44, -45, -46, -47, -48, -49, -5, -50, -6, -7, -8, -9]
答案 4 :(得分:0)
排序并获得前10个元素:-
from collections import Counter
dict(Counter(word_freq_dict).most_common(10))