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

毕设项目助手 其他问答 1

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?谢谢 ```

回复

共3条回复 我来回复
  • 代码货栈
    这个人很懒,什么都没有留下~
    评论

    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))

    0条评论
  • 源码客栈
    这个人很懒,什么都没有留下~
    评论

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

    改为

    list_hx.sort(key=lambda x:x[1],reverse=True)
    for hx in list_hx:
        print(hx[0]," : ",hx[1])
    
    0条评论
  • 源码客栈
    这个人很懒,什么都没有留下~
    评论

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

    0条评论

发表回复

登录后才能评论