TGViewer
PyThrone PyThrone @pythrone · 13 subscribers
Post #13 148
Что выведет этот код?

Могло показаться, что выведется словарь с буквами и их повторением в словаре.

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
  • 👍 2
  • 🔥 1
More from @pythrone
  1. Mar 10, 2023Как можно вызывать эту функцию? Правильный ответ # 1 и # 2. arg1 - только позиционный аргу…
  2. Mar 9, 2023В данном случае будет выведено None, потому что оператор and возвращает первое ложное знач…
  3. Feb 27, 2023Что выведет этот код? Iterable - это объект по которому можно пройтись. Для питона это люб…
  4. Feb 20, 2023Set - это множество, в котором элементы не имеют порядок. Т.е. порядок не гарантируется, н…
  5. Feb 16, 2023Что выведет этот код? Когда мы выполняем операции вида: left + right Вызывается метод left…
  6. Feb 14, 2023Что выведет этот код? hash() - функция, которая возвращает хэш-значение объекта, если объе…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →