如何使计数函数返回列表中的元素数

时间:2018-08-23 08:09:01

标签: python

我正在尝试创建一个计算列表中元素的函数,并且我正在为此使用Python。该程序应接受[a, a, a, b, b, c, c, c, c]之类的列表并返回值[3, 2, 4],但我遇到了麻烦。我该怎么办?

2 个答案:

答案 0 :(得分:3)

如果给定['a', 'a', 'a', 'b', 'b', 'a'],您想要[3, 2, 1]

import itertools
result = [len(list(iterable)) for _, iterable in itertools.groupby(my_list)]

答案 1 :(得分:1)

使用字典并对其做出反击。

a,b,c = "a","b","c"
inp = [a,a,a,b,b,c,c,c,c]
dic = {}
for i in inp:
    if i in dic:
        dic[i]+=1
    else:
        dic[i] = 1
print(dic)  #Dict with input values and count of them
print(dic.values())  #Count of values in the dict

请记住,这会更改输入列表的顺序。 若要保持订单不变,请使用Collections库中的OrderedDict方法。

from collections import OrderedDict
a,b,c = "a","b","c"
inp = [a,a,a,b,b,c,c,c,c]
dic = OrderedDict()
for i in inp:
    if i in dic:
        dic[i]+=1
    else:
        dic[i] = 1
print(dic)
print(dic.values())