Python

python3:リストのユニークなアイテムと、その個数を降順で返す

def count_frequency(lst,sort=True):
    unique_list = list(set(lst))
    frequency = []
    for i in unique_list:
        frequency.append((i,lst.count(i)))
    if sort:
        frequency = sorted(frequency,key=lambda x:x[1],reverse=True)
    return frequency
lst='a a a a a a a b b b b b c c d'.split(' ')
count_frequency(lst)

[('a', 7), ('b', 5), ('c', 2), ('d', 1)]

dictionaryだと、順番のコントロールが難しいので、list of tupleで返しています。
sort=True(デフォルト)の時、個数でソートし、降順で返します。