鱼C论坛

 找回密码
 立即注册
查看: 520|回复: 11

[已解决]如何统计这个列表中每个数字出现的次数,并按照次数排序,谢谢

[复制链接]
发表于 2020-4-13 00:07:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
['5,10,8','8,7,6,10','9,8,5,2,10']如何统计这个列表中每个数字出现的次数,并按照次数排序,谢谢
最佳答案
2020-4-13 10:41:31
本帖最后由 永恒的蓝色梦想 于 2020-4-13 10:45 编辑
from collections import Counter

def func(list):
    res=[]
    for i in list:
        res.extend(int(i) for i in i.split(','))
    c=Counter(res)
    res.sort(key=c.__getitem__)
    return res
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-13 08:27:58 | 显示全部楼层
先把每个字符串剥离一下,取出每个数字
然后用字典遍历所有数字,统计每个数字的个数
最后对字典根据值排序即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 09:05:57 | 显示全部楼层
字符怎么剥离呢?新手,求指点下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-13 10:28:41 | 显示全部楼层
lanyacp 发表于 2020-4-13 09:05
字符怎么剥离呢?新手,求指点下
for i in range(len(a)):
        
        for each in a[i]:
                if each == ',':
                        t = t
                else:
                        t.append(each)
别忘了之前设个t
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 10:31:41 | 显示全部楼层

好的,我试试,谢谢啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 10:38:17 | 显示全部楼层

打印出来里面的10被分成了1和0 两个元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 10:40:38 | 显示全部楼层
lanyacp 发表于 2020-4-13 10:38
打印出来里面的10被分成了1和0 两个元素

而且是每遍历一个打印一遍
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-13 10:41:31 | 显示全部楼层    本楼为最佳答案   
本帖最后由 永恒的蓝色梦想 于 2020-4-13 10:45 编辑
from collections import Counter

def func(list):
    res=[]
    for i in list:
        res.extend(int(i) for i in i.split(','))
    c=Counter(res)
    res.sort(key=c.__getitem__)
    return res
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 10:43:20 | 显示全部楼层
lanyacp 发表于 2020-4-13 10:40
而且是每遍历一个打印一遍

我print位置修改了一下,只打印一遍了,不过10还是被分割,这个怎么解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-13 10:47:21 | 显示全部楼层
lanyacp 发表于 2020-4-13 10:43
我print位置修改了一下,只打印一遍了,不过10还是被分割,这个怎么解决

试试我的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 10:49:32 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 10:51:38 | 显示全部楼层

可以了,谢谢

a = ['5,10,8','8,7,6,10','9,8,5,2,10']
from collections import Counter
def func(list):
    res=[]
    for i in list:
        res.extend(int(i) for i in i.split(','))
    c=Counter(res)
    res.sort(key=c.__getitem__)
    return res
res = func(a)
print(res)



[7, 6, 9, 2, 5, 5, 10, 8, 8, 10, 8, 10]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 11:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表