请问下面代码应该如何修改,刚学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?谢谢 ```
-
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))
-
你输出的是排序函数的返回值
改为
list_hx.sort(key=lambda x:x[1],reverse=True) for hx in list_hx: print(hx[0]," : ",hx[1])
-
sort函数没有返回值 它直接修改原list 所以你应该把sort语句拿到print之前执行 执行之后再print(list_hx)
发表回复