Python找出list中最常出现元素的方法

本文实例讲述了Python找出list中最常出现元素的方法。分享给大家供大家参考,具体如下:

假设一个list中保存着各种元素,需要统计每个元素出现的个数,并打印出最常出现的前三个元素分别是什么。list如下:

代码如下:

word_list =["is","you","are","I","am","OK","is","OK","She","is","OK","is","I"]

方法一(常规方法):

>>> word_counter ={}
>>> for word in word_list:
  if word in word_counter:
    word_counter[word] +=1
  else:
    word_counter[word] = 1
>>> popular_word =sorted(word_counter, key = word_counter.get, reverse = True)
)
>>> top_3 = popular_word[:3]
>>> top_3
['is', 'OK', 'I']

方法二:适用于Python2.7

>>> from collections import Counter
>>> c = Counter(word_list)
>>> c.most_common(3)

方法三:

>>> counter ={}
>>> for i in word_list: counter[i] = counter.get(i, 0) + 1
>>> sorted([ (freq,word) for word, freq in counter.items() ], reverse=True)[:3]
[(4, 'is'), (3, 'OK'), (2, 'I')]

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python列表(list)操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • Python中列表(list)操作方法汇总

    本文实例汇总了Python中关于列表的常用操作方法,供大家参考借鉴.具体方法如下: 一.Python创建列表: sample_list = ['a',1,('a','b')] 二.Python 列表操作: 假设有如下列表: sample_list = ['a','b',0,1,3] 1.得到列表中的某一个值: value_start = sample_list[0] end_value = sample_list[-1] 2.删除列表的第一个值: del sample_list[0] 3.在列表

  • python实现list元素按关键字相加减的方法示例

    本文实例讲述了python实现list元素按关键字相加减的方法.分享给大家供大家参考,具体如下: Python list中的元素按关键字相加或相减: # coding=utf-8 # 两个list按关键字相加或相减 def ListAdd(list1, list2, bAdd = True): if bAdd == False: list2 = [(k, -v) for (k, v) in list2] d = {} list0 = list1 + list2 for (k, v) in lis

  • Python实现两个list对应元素相减操作示例

    本文实例讲述了Python实现两个list对应元素相减操作.分享给大家供大家参考,具体如下: 两个list的对应元素操作,这里以相减为例: # coding=gbk v1 = [21, 34, 45] v2 = [55, 25, 77] #v = v2 - v1 # Error: TypeError: unsupported operand type(s) for -: 'list' and 'list' v = list(map(lambda x: x[0]-x[1], zip(v2, v1)

  • Python中list初始化方法示例

    本文实例讲述了Python中list初始化方法.分享给大家供大家参考,具体如下: 1.基本方法. lst = [1, 2, 3, 4, 5] 2.初始化连续数字. >>> lst = [n for n in range(5, 10)] >>> print(lst) [5, 6, 7, 8, 9] 3.初始化n个相同值.(两种方式) >>> lst = ['x' for n in range(5)] >>> print(lst) ['x

  • python list 合并连接字符串的方法

    比如下面一个list 复制代码 代码如下: binfo = ['lao','wang','python'] 我们通过help方法得知,可以用string的join方法来解决. 下面我们通过空格来连接3个单词: 复制代码 代码如下: content = " ".join(binfo)print content 结果是:lao wang python

  • python里对list中的整数求平均并排序

    问题 定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0~100之间的随机整数, (1)将它们存储到一维数组中,然后统计成绩低于平均分的学员的人数,并输出出来. (2)将这40个成绩按照从高到低的顺序输出出来. 解决(python) #! /usr/bin python #coding:utf-8 from __future__ import division #实现精确的除法,例如4/3=1.333333 import random def make_scor

  • Python list操作用法总结

    本文实例讲述了Python list操作用法.分享给大家供大家参考,具体如下: List是python中的基本数据结构之一,和Java中的ArrayList有些类似,支持动态的元素的增加.list还支持不同类型的元素在一个列表中,List is an Object. 最基本的创建一个列表的方法 复制代码 代码如下: myList = ['a','b','c'] Python list常见操作如下: 创建列表 复制代码 代码如下: sample_list = ['a',1,('a','b')] P

  • python中对list去重的多种方法

    今天遇到一个问题,在同事随意的提示下,用了 itertools.groupby 这个函数.不过这个东西最终还是没用上. 问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变. 直观方法 最简单的思路就是: 复制代码 代码如下: ids = [1,2,3,3,4,2,3,4,5,6,1] news_ids = [] for id in ids:     if id not in news_ids:         news_ids.append(id) print news_ids

  • Python中实现对list做减法操作介绍

    问题描述:假设我有这样两个list, 一个是list1,list1 = [1, 2, 3, 4, 5]           一个是list2,list2 = [1, 4, 5]           我们如何得到一个新的list,list3,           list3中包括所有不在list2中出现的list1中的元素.           即:list3 = list1 – list2           解决方案:我们可以用set(集合)操作           list3 = list(

  • Python求两个list的差集、交集与并集的方法

    本文实例讲述了Python求两个list的差集.交集与并集的方法.分享给大家供大家参考.具体如下: list就是指两个数组之间的差集,交集,并集了,这个小学数学时就学过的东西,下面就以实例形式对此加以分析. 一.两个list差集 如有下面两个数组: a = [1,2,3] b = [2,3] 想要的结果是[1] 下面记录一下三种实现方式: 1. 正常的方式 复制代码 代码如下: ret = [] for i in a:     if i not in b:         ret.append(

  • Python中给List添加元素的4种方法分享

    List 是 Python 中常用的数据类型,它一个有序集合,即其中的元素始终保持着初始时的定义的顺序(除非你对它们进行排序或其他修改操作). 在Python中,向List添加元素,方法有如下4种方法(append(),extend(),insert(), +加号) 1. append() 追加单个元素到List的尾部,只接受一个参数,参数可以是任何数据类型,被追加的元素在List中保持着原结构类型. 此元素如果是一个list,那么这个list将作为一个整体进行追加,注意append()和ext

  • python里将list中元素依次向前移动一位

    问题 定义一个int型的一维数组,包含10个元素,分别赋值为1~10, 然后将数组中的元素都向前移一个位置, 即,a[0]=a[1],a[1]=a[2],-最后一个元素的值是原来第一个元素的值,然后输出这个数组. 解决(Python) #!/usr/bin/env python #coding:utf-8 def ahead_one(): a = [i for i in range(10)] b = a.pop(0) a.append(b) return a if __name__ =="__m

随机推荐