counts = dict() for i in items: counts[i] = counts.get(i, 0) + 1
.get позволяет указать значение по умолчанию, если ключ не существует.
Ответ 3
Просто используйте свойство списка count\
i = ['apple','red','apple','red','red','pear'] d = {x:i.count(x) for x in i} print d
вывод :
{'pear': 1, 'apple': 2, 'red': 3}
Ответ 4
>>> L = ['apple','red','apple','red','red','pear'] >>> from collections import defaultdict >>> d = defaultdict(int) >>> for i in L: ... d[i] += 1 >>> d defaultdict(<type'int'>, {'pear': 1, 'apple': 2, 'red': 3})