登录
首页精彩阅读Python统计列表中的重复项出现的次数的方法
Python统计列表中的重复项出现的次数的方法
2017-12-14
收藏

Python统计列表中的重复项出现的次数的方法

本文以实例形式详细讲述了Python列表list数组array用法。分享给大家供大家参考。具体如下:
Python中的列表(list)类似于C#中的可变数组(ArrayList),用于顺序存储结构。
创建列表
 代码如下:
sample_list = ['a',1,('a','b')]
Python 列表操作
代码如下:
sample_list = ['a','b',0,1,3]
得到列表中的某一个值
代码如下:
value_start = sample_list[0]
end_value = sample_list[-1]
删除列表的第一个值
代码如下:
del sample_list[0]
在列表中插入一个值
代码如下:
sample_list[0:0] = ['sample value']
得到列表的长度
代码如下:
list_length = len(sample_list)
列表遍历
代码如下:
for element in sample_list:
print(element)
Python 列表高级操作/技巧
产生一个数值递增列表
代码如下:
num_inc_list = range(30)
#will return a list [0,1,2,...,29]
用某个固定值初始化列表
代码如下:
initial_value = 0
list_length = 5
sample_list = [ initial_value for i in range(10)]
sample_list = [initial_value]*list_length
# sample_list ==[0,0,0,0,0]

附:python内置类型'

1、list:列表 (即动态数组,C++标准库的vector,但可含不同类型的元素于一个list中)
代码如下:
a = ["I","you","he","she"]      #元素可为任何类型。

 
下标:按下标读写,就当作数组处理
以0开始,有负下标的使用
0第一个元素,-1最后一个元素,
-len第一个元 素,len-1最后一个元素

取list的元素数量
代码如下:
len(list)   #list的长度。实际该方法是调用了此对象的__len__(self)方法。
创建连续的list
代码如下:
L = range(1,5)      #即 L=[1,2,3,4],不含最后一个元素
L = range(1, 10, 2) #即 L=[1, 3, 5, 7, 9]
 
list的方法
代码如下:
L.append(var)   #追加元素
L.insert(index,var)
L.pop(var)      #返回最后一个元素,并从list中删除之
L.remove(var)   #删除第一次出现的该元素
L.count(var)    #该元素在列表中出现的个数
L.index(var)    #该元素的位置,无则抛异常
L.extend(list)  #追加list,即合并list到L上
L.sort()        #排序
L.reverse()     #倒序

list 操作符:,+,*,关键字del
代码如下:
a[1:]       #片段操作符,用于子list的提取
[1,2]+[3,4] #为[1,2,3,4]。同extend()
[2]*4       #为[2,2,2,2]
del L[1]    #删除指定下标的元素
del L[1:3]  #删除指定下标范围的元素

list的复制
代码如下:
L1 = L      #L1为L的别名,用C来说就是指针地址相同,对L1操作即对L操作。函数参数就是这样传递的
L1 = L[:]   #L1为L的克隆,即另一个拷贝。
list comprehension
[ <expr1> for k in L if <expr2> ]

本文实例展示了Python统计列表中的重复项出现的次数的方法,是一个很实用的功能,适合Python初学者学习借鉴。具体方法如下:

对一个列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],现在我们需要统计这个列表里的重复项,并且重复了几次也要统计出来。
方法1:    
mylist = [1,2,2,2,2,3,3,3,4,4,4,4]
myset = set(mylist)  #myset是另外一个列表,里面的内容是mylist里面的无重复 项
for item in myset:
  print("the %d has found %d" %(item,mylist.count(item)))

方法2:    
List=[1,2,2,2,2,3,3,3,4,4,4,4]
a = {}
for i in List:
  if List.count(i)>1:
    a[i] = List.count(i)
print (a)

利用字典的特性来实现。

方法3:
    
>>> from collections import Counter
>>> Counter([1,2,2,2,2,3,3,3,4,4,4,4])
Counter({1: 5, 2: 3, 3: 2})

这里再增补一个只用列表实现的方法:    
l=[1,4,2,4,2,2,5,2,6,3,3,6,3,6,6,3,3,3,7,8,9,8,7,0,7,1,2,4,7,8,9]
 
count_times = []
for i in l :
  count_times.append(l.count(i))
 
m = max(count_times)
n = l.index(m)
 
print (l[n])

其实现原理就是把列表中的每一个数出现的次数在其对应的位置记录下来,然后用max求出出现次数最多的位置。
只用这段代码的话,有一个缺点,如果有多个结果,最后的现实的结果只是出现在最左边的那一个,不过解决方法也很简单

数据分析咨询请扫描二维码

客服在线
立即咨询