lanyacp 发表于 2021-7-19 19:28:51

列表中元素统计排序

一个含有数组的列表[(5,6,10),(1,5,6),(3,5,7)]
如何统计每个数字的个数并从多到少排序,谢谢

xiaosi4081 发表于 2021-7-19 19:32:21

输出什么?

lanyacp 发表于 2021-7-19 19:40:54

xiaosi4081 发表于 2021-7-19 19:32
输出什么?

输出 数字和数字的次数,比如【(5,3),(6,2),(3,1),(7,1)】,前面是数字,后面是次数

学习中... 发表于 2021-7-19 19:49:40

lanyacp 发表于 2021-7-19 19:40
输出 数字和数字的次数,比如【(5,3),(6,2),(3,1),(7,1)】,前面是数字,后面是次数

这个问题能详细说说并给几个例子(输入的数据和输出的数据都要)吗,你这我有点没看懂{:10_250:}

lanyacp 发表于 2021-7-19 20:03:25

学习中... 发表于 2021-7-19 19:49
这个问题能详细说说并给几个例子(输入的数据和输出的数据都要)吗,你这我有点没看懂

对列表[(5,6,10),(1,5,6),(3,5,7)]进行统计排序
得到的结果是:【(5,3),(6,2),(3,1),(7,1),(10,1)】

阿奇_o 发表于 2021-7-19 21:11:36

本帖最后由 阿奇_o 于 2021-7-19 21:19 编辑

如果只是嵌套一层,且都是元组或列表嵌套,比较简单:1.展开列表,2. 用字典统计
>>> ls = [(5,6,10),(1,5,6),(3,5,7)]
>>> t = sum(map(list, ls), [])# 展开
>>> sorted({ i: t.count(i) for i in t }.items(), key=lambda i:i[-1], reverse=True)# 用字典统计,再排序
[(5, 3), (6, 2), (10, 1), (1, 1), (3, 1), (7, 1)]

若有多层嵌套,或 有嵌套又有 单独的,如 [, (3, 4), 1, 2] ,则稍微复杂一点,
但同理也是先展开(或遍历),然后统计(用字典统计比较方便)。
页: [1]
查看完整版本: 列表中元素统计排序