gpt4 book ai didi

python - 使用元组值对字典进行排序并过滤前 k 个元素

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:31 25 4
gpt4 key购买 nike

我想根据元组的第二个值对字典进行排序并获取前 k 个元素。
当每个键有一个值时,下面的代码有效。如何使用元组、列表或 numpy 数组更改它?

A = {'a':(3, 4), 'b':(1, 2), 'c': (10,11)}
newA = dict(sorted(A.iteritems(), key=operator.itemgetter(1), reverse=True)[:k])

期望的输出:

'b'
'a'
'c'

最佳答案

不要忘记字典是不稳定的——它们的顺序可以而且将会改变,如果你最不期望它会导致灾难性的错误,因为这种情况最常发生在键插入时。所以使用集合中的 OrderedDict

In [1]: from collections import OrderedDict
In [2]: OrderedDict(sorted(A.iteritems(), key=operator.itemgetter(1), reverse=False)[:k])
Out[2]: OrderedDict([('b', (1, 2)), ('a', (3, 4)), ('c', (10, 11))])

关于python - 使用元组值对字典进行排序并过滤前 k 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30679069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com