python 统计数组中元素出现次数并进行排序的实例


Posted in Python onJuly 02, 2018

如下所示:

lis = [12,34,456,12,34,66,223,12,5,66,12,23,66,12,66,5,456,12,66,34,5,34]

def test1():
  #进行去重
  c = []
  for i in lis:
    if i not in c:
      c.append(i)
  #进行统计,生成二维列表
  b = []
  for i in c:
    num = 0
    for j in range(len(lis)):
      if lis[j] == i:
        num += 1
    a = []
    a.append(i)
    a.append(num)
    b.append(a)
  # 排序算法,按出现次数进行降序排列
  for i in range(len(b)):
    for j in range(i,len(b)):
      if b[i][1] < b[j][1]:
        temp = b[i]
        b[i] = b[j]
        b[j] = temp
  print(b)

def test2():
  # set进行去重,进行统计生成二维列表
  b = []
  for i in list(set(lis)):
    num = 0
    for j in range(len(lis)):
      if lis[j] == i:
        num += 1
    a = []
    a.append(i)
    a.append(num)
    b.append(a)
  # 排序算法,按出现次数进行降序排列
  for i in range(len(b)):
    for j in range(i,len(b)):
      if b[i][1] < b[j][1]:
        temp = b[i]
        b[i] = b[j]
        b[j] = temp
  print(b)

def test3():
  # 统计元素出现次数,元素为key,次数为value,生成字典
  a = {}
  for i in lis:
    if i in a:
      a[i] = a[i] + 1
    else:
      a[i] = 1
  # 使用sorted对字典进行排序
  b = sorted(a.items(),key=lambda item:item[1],reverse=True)
  print(b)

def test4():
  from collections import Counter
  import operator
  #进行统计
  a = dict(Counter(lis))
  #进行排序
  b= sorted(a.items(), key=operator.itemgetter(1),reverse=True)
  print(b)

if __name__ == '__main__':
  test1()
  test2()
  test3()
  test4()

输出结果如下:

[[12, 6], [66, 5], [34, 4], [5, 3], [456, 2], [223, 1], [23, 1]]
[[12, 6], [66, 5], [34, 4], [5, 3], [456, 2], [23, 1], [223, 1]]
[(12, 6), (66, 5), (34, 4), (5, 3), (456, 2), (23, 1), (223, 1)]
[(12, 6), (66, 5), (34, 4), (5, 3), (456, 2), (23, 1), (223, 1)]

这是面试过程中遇到的一个问题找到的解决方法,总结了一下,小编是初学者,还需不断努力学习。

以上这篇python 统计数组中元素出现次数并进行排序的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的tab文件操作类分享
Nov 20 Python
利用QT写一个极简单的图形化Python闹钟程序
Apr 07 Python
详解Python程序与服务器连接的WSGI接口
Apr 29 Python
Python中定时任务框架APScheduler的快速入门指南
Jul 06 Python
python实现SOM算法
Feb 23 Python
用Python写脚本,实现完全备份和增量备份的示例
Apr 29 Python
pandas read_excel()和to_excel()函数解析
Sep 19 Python
Django中自定义模型管理器(Manager)及方法
Sep 23 Python
Python中类似于jquery的pyquery库用法分析
Dec 02 Python
在Python IDLE 下调用anaconda中的库教程
Mar 09 Python
python 求两个向量的顺时针夹角操作
Mar 04 Python
Python 阶乘详解
Oct 05 Python
分享vim python缩进等一些配置
Jul 02 #Python
实践Vim配置python开发环境
Jul 02 #Python
用python实现将数组元素按从小到大的顺序排列方法
Jul 02 #Python
Django实现分页功能
Jul 02 #Python
详解python单元测试框架unittest
Jul 02 #Python
python中多层嵌套列表的拆分方法
Jul 02 #Python
python中int与str互转方法
Jul 02 #Python
You might like
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
8个PHP数组面试题
2015/06/23 PHP
php图像处理类实例
2015/07/28 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
PHP编程实现计算抽奖概率算法完整实例
2017/08/09 PHP
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
2017/02/15 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
Python中的进程分支fork和exec详解
2015/04/11 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
linux面试题参考答案(10)
2013/11/04 面试题
医学专业毕业生推荐信
2013/11/14 职场文书
酒店开业庆典策划方案
2014/05/28 职场文书
项目合作意向书模板
2014/07/29 职场文书
教师纪念9.18事件演讲稿范文
2014/09/14 职场文书
仲裁协议书
2014/09/26 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
英语教师求职信范文
2015/03/20 职场文书
护士自我推荐信范文
2015/03/24 职场文书