如何对包含实数的字典进行排序 Python
How do I sort a dictionary containing real numbers Python
我试着整理我的字典:
def averagefunc():
global new_d
avgDict = {}
for k,v in new_d.items():
avgDict[k] = sum(v)/ float(len(v))
avgValue =sorted(avgDict.items(), key=lambda x: (x[1], x[0]))
print (avgValue)
print ("----------")
虽然它没有对字典进行排序,但它只是未排序地打印出来。
new_d 存储一个字典:包含一个名字,然后每个名字有 3 个分数。
{'Tom': [4,5,8] ,'Bill': [2,5,7], 'Fred' :[6,8,3]}
How do I sort a dictionary
你不知道。字典没有顺序感。
您似乎希望 new_d
中的值是数字列表,但至少有一个不是。
更新
我试过你更新后的代码,它对我有用:
print avgValue
>> [('Bill', 4.666666666666667), ('Fred', 5.666666666666667), ('Tom', 5.666666666666667)]
一个有序的元组列表,第一个元素是名字,第二个元素是平均值。
我试着整理我的字典:
def averagefunc():
global new_d
avgDict = {}
for k,v in new_d.items():
avgDict[k] = sum(v)/ float(len(v))
avgValue =sorted(avgDict.items(), key=lambda x: (x[1], x[0]))
print (avgValue)
print ("----------")
虽然它没有对字典进行排序,但它只是未排序地打印出来。
new_d 存储一个字典:包含一个名字,然后每个名字有 3 个分数。
{'Tom': [4,5,8] ,'Bill': [2,5,7], 'Fred' :[6,8,3]}
How do I sort a dictionary
你不知道。字典没有顺序感。
您似乎希望 new_d
中的值是数字列表,但至少有一个不是。
更新
我试过你更新后的代码,它对我有用:
print avgValue
>> [('Bill', 4.666666666666667), ('Fred', 5.666666666666667), ('Tom', 5.666666666666667)]
一个有序的元组列表,第一个元素是名字,第二个元素是平均值。