Переводчик в две стороны
Источник предлагает искать перевод и по ключам, и по значениям.
dictionary = {
"Butterfly": "Бабочка",
"Training": "Обучение",
"Restaurant": "Ресторан",
"Programming": "Программирование",
}
word = "Бабочка"
if word in dictionary:
print("Перевод:", dictionary[word])
elif word in dictionary.values():
for english, russian in dictionary.items():
if russian == word:
print("Перевод:", english)
break
else:
print("Перевод отсутствует.")Проверка скобок через словарь
Словарь хранит соответствие закрывающей и открывающей скобки.
string = "({[]})"
stack = []
brackets = {")": "(", "]": "[", "}": "{"}
is_valid = True
for char in string:
if char in brackets.values():
stack.append(char)
elif char in brackets:
if stack and stack[-1] == brackets[char]:
stack.pop()
else:
is_valid = False
break
print(f"Скобки '{string}' валидны:", is_valid and not stack)Реверс словаря с повторяющимися значениями
setdefault() удобно накапливает список ключей.
data = {"a": 1, "b": 2, "c": 1, "d": 3}
reversed_dict = {}
for key, value in data.items():
reversed_dict.setdefault(value, []).append(key)
print("Перевернутый словарь:", reversed_dict)Счётчик букв в словах
Вложенный словарь хранит частоты букв для каждого слова.
words = ["anna", "bennet", "john"]
result = {}
for word in words:
counts = {}
for letter in word:
counts[letter] = counts.get(letter, 0) + 1
result[word] = counts
print(result)