请问下面代码应该如何修改,刚学python,实在是不知道如何修改了?



```python

ls=[]
a,b,c=0,0,0
for i in range(10):
    toupiao=input("Input the name of candidate:")
    ls.append(toupiao)
for j in ls:
    if j=='Lily':
        a+=1
    elif j=='John':
        b+=1
    else:
        c+=1
houxuan={"Lily":0,"John":0,"Rose":0}
houxuan["Lily"]=a
houxuan["John"]=b
houxuan["Rose"]=c
list_hx = list(houxuan.items())
print(list_hx.sort(key=lambda x:x[1],reverse=True))
        
想让他的输出结果为
Lily : 5

Rose : 3

John : 2
为什么结果是None?谢谢

```

你输出的是排序函数的返回值

img


改为


list_hx.sort(key=lambda x:x[1],reverse=True)
for hx in list_hx:
    print(hx[0]," : ",hx[1])

print(list_hx.sort(key=lambda x:x[1],reverse=True))这一句拆成两句
list_hx.sort(key=lambda x:x[1],reverse=True)
print(list_hx)
因为sort是直接对list_hx排序的,没有返回值
要返回排序结果,用sorted,如print(sorted(list_hx,key=lambda x:x[1],reverse=True))

sort函数没有返回值
它直接修改原list
所以你应该把sort语句拿到print之前执行
执行之后再print(list_hx)

有可能是最后的sort排序有毛病 你把listhx打印一下 一点一点找问题 看着想sort的毛病