根据数组中的给定列对python字典进行排序

时间:2019-01-24 15:33:27

标签: python dictionary

我有以下几种字典

import operator
my_dict = {'a':np.array((1,2)),'b':np.array((3,4))}

,我需要根据数组的第一列进行排序。我可以对这本其他字典进行排序

my_dict2 = {'a':np.array((1)),'b':np.array((3))}

使用

sorted(my_dict2.items(), key=operator.itemgetter(1),reverse=True)

但尝试使用与my_dict相同的方法,即

sorted(my_dict.items(), key=operator.itemgetter(1),reverse=True)

引发错误消息

The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我尝试使用itemgetter中的参数,但是我无法订购my_dict。

1 个答案:

答案 0 :(得分:0)

我不确定如何使用运算符获取下标值。所以我要做的是:

sorted(my_dict.items(), key=lambda x: x[1][0],reverse=True)

说明:
x[1][0]表示您要从( 1 ,2)和( 3 ,4)中取出1和3。
x[1][1]表示您要从(1, 2 )和(3, 4 )中取出2和4。
x[0]itemgetter(0)相同,后者将按a和b排序,这是字典的键。