• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 8. Словари

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Задача«Приветствие»

Вы – начинающий путешественник и хотите создать небольшой словарик для общения в разных странах. У вас есть словарь, где ключами являются названия стран, а значениями – приветствия на языке этой страны. Вам нужно написать программу, которая позволяет пользователю ввести название страны, а программа выведет приветствие на языке этой страны из вашего словаря. Если страны нет в словаре, программа должна сообщить об этом.

Формат ввода

На вход подается строка с названием страны

в рамках данного задания вам заранее дается словарь, его надо вставить в ваш код

greetings = {
    "Италия": "Ciao",
    "Франция": "Bonjour",
    "Германия": "Hallo",
    "Россия": "Привет",
    "США": "Hello",
    "Бразилия": "Olá",
    "Великобритания": "Hello",
    "Испания": "Hola",
    "Аргентина": "Hola"
}

Формат Вывода

Программа должна вывести приветствие на языке указанной страны. Если страна не найдена в словаре, вывести сообщение "Приветствие для данной страны не найдено"

Пример

Ввод

Испания

Вывод

Hola

Подсказка

Словари в питоне

Словари в Python — это мощная и незаменимая структура данных, которая позволяет хранить информацию в виде пар "ключ-значение". Представьте себе настоящий словарь или телефонную книгу: зная уникальное слово (ключ), вы мгновенно находите его определение (значение). Словари упрощают организацию и, что самое главное, обеспечивают очень быстрый доступ к данным на основе уникальных ключей.

Основные характеристики словарей

  • Ключи уникальны: Каждый ключ в словаре должен быть уникальным. Попытка добавить ключ, который уже существует, просто перезапишет его значение.
  • Изменяемость: Словари являются изменяемыми (mutable) объектами. Вы можете добавлять, изменять и удалять пары "ключ-значение" после создания словаря.
  • Неупорядоченность (исторически): В старых версиях Python (до 3.7) словари считались неупорядоченными. Однако, начиная с Python 3.7, они сохраняют порядок вставки элементов. Полагаться на этот порядок стоит с осторожностью, если ваш код должен работать на старых версиях.

Полезный совет: В качестве ключей можно использовать только неизменяемые (immutable) типы данных, такие как строки, числа или кортежи. Списки или другие словари не могут быть ключами, так как их можно изменить. А вот в качестве значений можно использовать абсолютно любые типы данных: числа, строки, списки и даже другие словари.

Способы создания словарей

Словари можно создавать несколькими способами:

1. Пустой словарь

my_dict = {}
# или с помощью встроенной функции
my_dict = dict()

2. Словарь с элементами (литеральный способ) Это самый распространённый и читаемый способ.

user_profile = {
    "username": "alex",
    "level": 15,
    "items": ["меч", "щит", "зелье"]
}

3. Использование функции dict с именованными аргументами Этот способ удобен для простых словарей, где ключи являются строками.

my_dict = dict(ключ1="значение1", ключ2="значение2")

4. Создание из списка кортежей (пар) Этот метод полезен, когда данные поступают в виде списка пар.

pairs = [('a', 1), ('b', 2), ('c', 3)]
my_dict = dict(pairs)
# Результат: {'a': 1, 'b': 2, 'c': 3}

Доступ к элементам

Доступ к значениям словаря осуществляется через их ключи в квадратных скобках.

my_dict = {"ключ1": "значение1", "ключ2": "значение2"}
print(my_dict["ключ1"])  # Вывод: значение1

Важный момент: Если вы попытаетесь получить доступ к ключу, которого не существует, Python вызовет ошибку KeyError. Чтобы избежать этого, используйте метод .get().

Безопасный доступ с помощью метода .get() Метод .get() вернёт None, если ключ не найден, и не вызовет ошибку. Вы также можете передать второй аргумент — значение по умолчанию, которое вернётся вместо None.

print(my_dict.get("ключ3"))  # Вывод: None
print(my_dict.get("ключ3", "не найдено")) # Вывод: не найдено

Изменение и добавление элементов

Добавлять или изменять элементы очень просто:

my_dict = {"ключ1": "старое значение"}

# Изменение существующего элемента
my_dict["ключ1"] = "новое значение"
print(my_dict["ключ1"])  # Вывод: новое значение

# Добавление нового элемента
my_dict["ключ3"] = "значение3"
print(my_dict)  # Вывод: {'ключ1': 'новое значение', 'ключ3': 'значение3'}

Для объединения словарей можно использовать метод .update():

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1.update(dict2) # Ключ 'b' будет перезаписан, 'c' будет добавлен
print(dict1) # Вывод: {'a': 1, 'b': 3, 'c': 4}

Удаление элементов

Элементы в словарях можно удалять несколькими способами:

  • Использование оператора del Удаляет пару по ключу. Вызывает ошибку KeyError, если ключ не найден.
    del my_dict["ключ1"]
    
  • Использование метода .pop() Удаляет элемент по ключу и возвращает его значение. Это полезно, если вам нужно использовать удаленное значение. Если ключ не найден, вызовет KeyError, но можно передать значение по умолчанию.
    my_dict = {'ключ2': 'значение2', 'ключ3': 'значение3'}
    value = my_dict.pop("ключ2")
    print(value)  # Вывод: значение2
    print(my_dict)  # Вывод: {'ключ3': 'значение3'}
    
  • Удаление всех элементов Метод .clear() очищает словарь, делая его пустым.
    my_dict.clear()
    print(my_dict)  # Вывод: {}
    

Перебор элементов словаря

1. Перебор ключей Это поведение по умолчанию при итерации по словарю.

for key in my_dict:
    print(key)

2. Перебор значений Используйте метод .values(), если вам нужны только значения.

for value in my_dict.values():
    print(value)

3. Перебор пар "ключ-значение" Это наиболее эффективный и читаемый способ, если вам нужны и ключи, и значения одновременно. Используйте метод .items().

for key, value in my_dict.items():
    print(f"Ключ: {key}, Значение: {value}")
main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Тест 9
Тест 10
Решение разработчика

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, обьяснить то, что тебе не понятно, а так же о текущей задаче!