python 找出列表中出现次数最多的元素

 自己码的  记录下思路  

a = [
      "my", "skills", "are", "poor", "I", "am", "poor", "I",
      "need", "skills", "more", "my", "ability", "are",
      "so", "poor"
   ]
dict_a={}
#创建一个空字典,用以存放后面的元素:重复次数
set_a=set(a)
#将列表a转化成集合a,这一步是代码最简单的去重(集合不允许有重复元素)

for i in set_a:
    #循环遍历集合set_a中的每一个元素
    dict_a[i]=a.count(i)
    #集合set_a里的元素必然是在列表a中,a.count(i)得到该元素出现的次数
    #在将i作为key,次数作为value,添加到字典中
    #得到一个a中所有元素:次数的字典

list_b=list(dict_a.items())
#   获取字典dict_a中所有的键值对,但是此时不可操作,需要用list()转换为列表格式
#   列表list_b中的内容为[('元素名',1),........],列表list_b里的每一个元素是一个元组

list_c=sorted(list_b,key=lambda x:x[1],reverse=True)
#   sorted()函数排序,key定义按照list_b中每个元素(元组)的第二个数据(下标1)进行降序排列
#   sorted()函数返回的是一个新的列表,所以需要另外定义一个变量接收


#   最后应该还要加上一个判断,如果次数最多的元素存在并列的情况,则要都打印出来
for i in list_c:
    if i[1]==list_c[0][1]:
        print(i[0])
    else:
        break

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值