解决该问题的思路是定义一个空的字典,然后遍历该列表,判断列表中的元素是否在字典中,若存在则次数加1,若不存在则次数置为1,列表中的元素作为字典的key,出现的次数作为字典的value;
普通的for循环,代码如下:
def statics(li):
dic={}
for item in li:
if not item in dic:
dic[item]=1
else:
dic[item]+=1
for item in dic:
print '%s出现的次数:%s'%(item,dic[item])
采用python内建函数–reduce,代码如下:
def sta(dic,li):
if not li in dic:
dic[li]=1
else:
dic[li]+=1
l=[1,1,1,2,3,3,2]
print reduce(sta,l,{})
采用内置set方法和列表的count方法,代码如下:
def sta(li):
dic={}
sli=set(li)
for item in sli:
dic[item]=li.count(item)
return dic
set是一个无序不重复的元素集合,set是一种集合,当然可以使用 in/not in, len,即sets 支持 x in set, len(set),和 for x in set。count()方法用来计算列表中某一元素的个数
注:如何去除海量列表中的重复元素,set()就是一个不错的方法