Я Recommand вы вызываете ascii_lowercase
из string
. Он имеет готовое строчными включает 'abcdefghijklmnopqrstuvwxyz'
Это мой метод:
from collections import Counter
from string import ascii_lowercase
l = ['a','z','y','y','z','y','b','b']
c = Counter(l)
sorted_items = sorted(c.items(), key=lambda x: x[0])
# get result when you need ordinal number of lowcase
print [ (ascii_lowercase.index(k)+1, k, v) for k, v in sorted_items]
# [(1, 'a', 1), (2, 'b', 2), (25, 'y', 3), (26, 'z', 2)]
Если вы хотите, чтобы получить гладкошерстный результат в первом элементе кортежа, я научу вас некоторые трюками
# get result when you need ordinal number of count in decreasing order
print [ (index, item[0], item[1]) for index, item in enumerate(c.most_common(),1)]
# [(1, 'y', 3), (2, 'z', 2), (3, 'b', 2), (4, 'a', 1)]
# get result when you need ordinal number of count in increasing order
print [ (index, item[0], item[1]) for index, item in enumerate(sorted(c.items(), key=lambda x: x[1]),1)]
# [(1, 'a', 1), (2, 'z', 2), (3, 'b', 2), (4, 'y', 3)]
Он может сделать более интересный результат, не так ли?