代码实战——python统计出现次数前三数(字典处理)——2020.11.12

一丶代码实战

#项目名称:
#项目简介:
#作   者:key
#开发时间:2020/11/12 20:35

from collections import Counter
import random
l = [random.randint(1, 100) for i in range(100)]
num_Count=dict(Counter(l))
# print(num_Count)
value_num = max((num_Count.values()))
# print(value_num)
for i in range(1,value_num+1):
    # filter的主要作用是通过function对iterable中的元素进行过滤,并返回一个迭代器(iterator)
    # 下文的function就是我们自己写的匿名函数
    # num_Count.get(k) == i 查看当前的k所对应的的value值是否是i
    # filter的目的就是为了过滤掉不符合条件的值,符合条件的,返回迭代器
    # 由于filter(lambda k: num_Count.get(k) == i, num_Count.keys())返回的是迭代器,所以list转化
    key_list = list(filter(lambda k: num_Count.get(k) == i, num_Count.keys()))
    print("出现{}次的数是{}".format(i,key_list))
num = 0
print("--------------------------------------------------------------------------")
for i in range(value_num,0,-1):
    # 同理上文
    num_list = list(filter(lambda k: num_Count.get(k) == i, num_Count.keys()))
    # 这里不能等于3,因为存在一个逻辑漏洞,就是当前已经等于3,满足题目条件了,下一次会直接输出次一级的所有答案
    if num<3:
        print(num_list,"次数为{}".format(i))
    #加上当前序列数
    num+=len(num_list)

二丶运行结果

在这里插入图片描述

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Blockchain_KT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值