我有以下几种字典
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。
答案 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排序,这是字典的键。