zaodianyuri 2021-11-19 22:54 采纳率: 94.4%
浏览 79
已结题

python组长选举问题,为什么输出不正常,代码哪里有问题呀

问题遇到的现象和发生背景

为什么没有统计所有提名者呀

问题相关代码,请勿粘贴截图
vote=['鲁智深','柴进','宋江','吴用','林冲','卢俊义',\
      '柴进','柴进','孙二娘','史进','吴用','卢俊义',\
      '柴进','林冲','宋江','宋江','卢俊义','吴用','吴用']
vote2=[]
dic={}
for i in vote:
    if i not in vote2:
        dic.update({i:vote.count(i)})
        vote2.append(i)
        while i in vote:
            vote.remove(i)
print(dic)


运行结果及报错内容

img

我想要达到的结果

正确输出所有被提名者,返回键值对列表,排序后由高到低输出,如图

img

  • 写回答

1条回答 默认 最新

  • Hann Yang 全栈领域优质创作者 2021-11-20 00:25
    关注
    vote=['鲁智深','柴进','宋江','吴用','林冲','卢俊义',\
          '柴进','柴进','孙二娘','史进','吴用','卢俊义',\
          '柴进','林冲','宋江','宋江','卢俊义','吴用','吴用']
    setv = list(set(vote))
    sort = sorted([(vote.count(v),v) for v in setv],reverse=True)
    for s in sort:
        print(f'{s[1]}\t{s[0]}')
    
    >>> 
    执行结果如下:
    柴进     4
    吴用     4
    宋江     3
    卢俊义   3
    林冲     2
    鲁智深   1
    孙二娘   1
    史进     1
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月28日
  • 已采纳回答 11月20日
  • 创建了问题 11月19日

悬赏问题

  • ¥15 Python程序,深度学习,有偿私
  • ¥15 扫描枪扫条形码出现问题
  • ¥15 poi合并多个word成一个新word,原word中横版没了.
  • ¥15 【火车头采集器】搜狐娱乐这种列表页网址,怎么采集?
  • ¥15 求MCSCANX 帮助
  • ¥15 机器学习训练相关模型
  • ¥15 Todesk 远程写代码 anaconda jupyter python3
  • ¥15 我的R语言提示去除连锁不平衡时clump_data报错,图片以下所示,卡了好几天了,苦恼不知道如何解决,有人帮我看看怎么解决吗?
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开