列表中元素统计排序
一个含有数组的列表[(5,6,10),(1,5,6),(3,5,7)]如何统计每个数字的个数并从多到少排序,谢谢 输出什么?
xiaosi4081 发表于 2021-7-19 19:32
输出什么?
输出 数字和数字的次数,比如【(5,3),(6,2),(3,1),(7,1)】,前面是数字,后面是次数 lanyacp 发表于 2021-7-19 19:40
输出 数字和数字的次数,比如【(5,3),(6,2),(3,1),(7,1)】,前面是数字,后面是次数
这个问题能详细说说并给几个例子(输入的数据和输出的数据都要)吗,你这我有点没看懂{:10_250:} 学习中... 发表于 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: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]