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