Могло показаться, что выведется словарь с буквами и их повторением в словаре.
dict.setdefault(key, default=None) - возвращает значение по ключу key, а если ключа нет в словаре, то добавляет пару key=default и возвращает значение default.dict.get(key, default=None) - возвращает значение по ключу key, а если ключа нет, то возвращает default не добавляя пару в словарь.То есть мы просто каждой букве в слове поставили значение counter.get(char, 1) + 1 = 2.
Чтобы посчитать реальный счетчик повторении есть несколько способов:
s = "hello"
# 1
counter = {}
for char in s:
counter[char] = counter.setdefault(char, 0) + 1
# 2
counter = {}
for char in s:
counter[char] = counter.get(char, 0) + 1
# 3
from collections import defaultdict
counter = defaultdict(int)
for char in s:
counter[char] += 1
# 4
from collections import Counter
counter = Counter(s)
#dict #counter
