发布于 2014-08-18 14:41:43 | 736 次阅读 | 评论: 0 | 来源: 网友投递
Python编程语言
Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
本文讲解了3种使用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求出出现次数最多的位置。
只用这段代码的话,有一个缺点,如果有多个结果,最后的现实的结果只是出现在最左边的那一个,不过解决方法也很简单
感兴趣的读者可以动手实践一下本文所述代码,还可以对不足之处加以改进,使之功能更加完善。