Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的字典计算_Python_Loops_Dictionary - Fatal编程技术网

python中的字典计算

python中的字典计算,python,loops,dictionary,Python,Loops,Dictionary,我有一本像下面这样的字典 {'MADTHNTEYH': ' 7.6518374230562838', 'MADTHNTEYS': ' 7.9421338120705345', 'MADTHNTEYW': ' 7.7303738107448217', 'MALTENAEYS': ' 7.4882848464336709', 'MALTENTEYH': ' 7.1865554139328083', 'MALTHNAEYH': ' 7.5424656020912142', 'MALTHNT

我有一本像下面这样的字典

{'MADTHNTEYH': ' 7.6518374230562838',
 'MADTHNTEYS': ' 7.9421338120705345',
 'MADTHNTEYW': ' 7.7303738107448217',
 'MALTENAEYS': ' 7.4882848464336709',
 'MALTENTEYH': ' 7.1865554139328083',
 'MALTHNAEYH': ' 7.5424656020912142',
 'MALTHNTEYS': ' 7.8213289476188521',
 'MALTNNTEYW': ' 7.3735279637144355',
 'MFDTENAEYH': ' 7.3250263600055829',
 'MFDTENAEYW': ' 7.4035627476941208',
 'MFDTHNAEYS': ' 7.9597998936916268',
 'MNLTHNFEYH': ' 7.3567715253480195',
 'MNLTNNFEYS': ' 7.4110269317835664',
 'MNLTNNFEYW': ' 7.1992669304578536',
 'MNPTENAEYH': ' 7.0852200293633736',
 'MNPTENAEYW': ' 7.1637564170519115',
 'MNPTENTEYH': ' 7.0737869858767608',
 'MNPTENTEYS': ' 7.3640833748910115',
 'MNPTENTEYW': ' 7.1523233735652987',
 'MNPTHNAEYS': ' 7.7199935630494174',
 'MNPTNNAEYH': ' 7.193656191456463',
 'MNPTNNFEYH': ' 7.0400205169440992',
 'MNPTNNFEYS': ' 7.3303169059583491',
 'MNPTNNFEYW': ' 7.1185569046326371',
 'MNPTNNTEYH': ' 7.1822231479698502',
 'MNPTNNTEYS': ' 7.4725195369841009',
 'MNPTNNTEYW': ' 7.2607595356583889'}
我想要的是一个输出,它应该包含前10个(根据值)键及其相应的降序值。 在本例中,输出应为

MFDTHNAEYS :  7.9597998936916268
MADTHNTEYS :  7.9421338120705345
MALTHNTEYS :  7.8213289476188521
MADTHNTEYW :  7.7303738107448217
类似于此,直到第10个。

您可以为此使用后跟

>>> from collections import Counter
>>> some_dict = {'MNLTHNFEYH': ' 7.3567715253480195', 'MNPTENAEYH': ' 7.0852200293633736',     'MADTHNTEYH': ' 7.6518374230562838', 'MFDTENAEYH': ' 7.3250263600055829', 'MALTHNAEYH': '     7.5424656020912142', 'MFDTHNAEYS': ' 7.9597998936916268', 'MALTENTEYH': ' 7.1865554139328083', 'MFDTENAEYW': ' 7.4035627476941208', 'MALTNNTEYW': ' 7.3735279637144355', 'MADTHNTEYW': ' 7.7303738107448217', 'MNPTENAEYW': ' 7.1637564170519115', 'MADTHNTEYS': ' 7.9421338120705345', 'MNLTNNFEYW': ' 7.1992669304578536', 'MNPTHNAEYS': ' 7.7199935630494174', 'MNLTNNFEYS': ' 7.4110269317835664', 'MNPTNNAEYH': ' 7.193656191456463', 'MNPTNNFEYS': ' 7.3303169059583491', 'MNPTNNTEYW': ' 7.2607595356583889', 'MNPTENTEYW': ' 7.1523233735652987', 'MNPTNNFEYW': ' 7.1185569046326371', 'MNPTNNTEYS': ' 7.4725195369841009', 'MNPTENTEYS': ' 7.3640833748910115', 'MNPTNNFEYH': ' 7.0400205169440992', 'MNPTENTEYH': ' 7.0737869858767608', 'MNPTNNTEYH': ' 7.1822231479698502', 'MALTHNTEYS': ' 7.8213289476188521', 'MALTENAEYS': ' 7.4882848464336709'}
>>> for k, v in Counter(some_dict).most_common(10):
    print "{}:{}".format(k,v)


MFDTHNAEYS: 7.9597998936916268
MADTHNTEYS: 7.9421338120705345
MALTHNTEYS: 7.8213289476188521
MADTHNTEYW: 7.7303738107448217
MNPTHNAEYS: 7.7199935630494174
MADTHNTEYH: 7.6518374230562838
MALTENAEYS: 7.4882848464336709
MNPTNNTEYS: 7.4725195369841009
MNLTNNFEYS: 7.4110269317835664
MFDTENAEYW: 7.4035627476941208
为此,可以使用后跟

>>> from collections import Counter
>>> some_dict = {'MNLTHNFEYH': ' 7.3567715253480195', 'MNPTENAEYH': ' 7.0852200293633736',     'MADTHNTEYH': ' 7.6518374230562838', 'MFDTENAEYH': ' 7.3250263600055829', 'MALTHNAEYH': '     7.5424656020912142', 'MFDTHNAEYS': ' 7.9597998936916268', 'MALTENTEYH': ' 7.1865554139328083', 'MFDTENAEYW': ' 7.4035627476941208', 'MALTNNTEYW': ' 7.3735279637144355', 'MADTHNTEYW': ' 7.7303738107448217', 'MNPTENAEYW': ' 7.1637564170519115', 'MADTHNTEYS': ' 7.9421338120705345', 'MNLTNNFEYW': ' 7.1992669304578536', 'MNPTHNAEYS': ' 7.7199935630494174', 'MNLTNNFEYS': ' 7.4110269317835664', 'MNPTNNAEYH': ' 7.193656191456463', 'MNPTNNFEYS': ' 7.3303169059583491', 'MNPTNNTEYW': ' 7.2607595356583889', 'MNPTENTEYW': ' 7.1523233735652987', 'MNPTNNFEYW': ' 7.1185569046326371', 'MNPTNNTEYS': ' 7.4725195369841009', 'MNPTENTEYS': ' 7.3640833748910115', 'MNPTNNFEYH': ' 7.0400205169440992', 'MNPTENTEYH': ' 7.0737869858767608', 'MNPTNNTEYH': ' 7.1822231479698502', 'MALTHNTEYS': ' 7.8213289476188521', 'MALTENAEYS': ' 7.4882848464336709'}
>>> for k, v in Counter(some_dict).most_common(10):
    print "{}:{}".format(k,v)


MFDTHNAEYS: 7.9597998936916268
MADTHNTEYS: 7.9421338120705345
MALTHNTEYS: 7.8213289476188521
MADTHNTEYW: 7.7303738107448217
MNPTHNAEYS: 7.7199935630494174
MADTHNTEYH: 7.6518374230562838
MALTENAEYS: 7.4882848464336709
MNPTNNTEYS: 7.4725195369841009
MNLTNNFEYS: 7.4110269317835664
MFDTENAEYW: 7.4035627476941208

我不相信
收集。需要计数器

for key in sorted(d, key=d.get, reverse=True)[:10]:
    print '{}: {}'.format(key, d[key])

我不相信
收集。需要计数器

for key in sorted(d, key=d.get, reverse=True)[:10]:
    print '{}: {}'.format(key, d[key])

计数器
类是
dict
的子类,因此使用它可以创建一个副本。由于其
最常用的
方法是通过
heapq
实现的,因此您可以跳过中间人:


计数器
类是
dict
的子类,因此使用它可以创建一个副本。由于其
最常用的
方法是通过
heapq
实现的,因此您可以跳过中间人:


你能发布你尝试过的代码吗?你能发布你尝试过的代码吗?事实上,甚至不需要调用
float
。事实上,甚至不需要调用
float
。当数据已经以字典的形式存在时,为什么要增加排序的开销?@Abhijit为什么要增加将其放入
计数器的开销?
heapq.nlargest(10,d.iteritems(),key=itemgetter(1))
@eryksun我想你应该回答这个问题——我会投赞成票,以确保我有点担心不在这里调用float;这种排序只会在对数字范围和表示格式进行假设的情况下起作用。当数据已经以字典的形式存在时,为什么要增加排序的开销?@Abhijit为什么要增加将其放入
计数器的开销
?您还可以使用计数器使用的内容:
heapq.nlargest(10,d.iteritems(),key=itemgetter(1))
@eryksun我想你应该给出一个答案——我会给它一个向上的投票,以确保我有点担心不在这里调用float;这种排序只会因为对数字范围和表示格式的假设而起作用。