Python Урок 6. Кортежи и словари

На уроке раскрываются подробности работы в python с кортежами и словарями:

Кортежи

    Кортеж в Питоне — по сути это неизменяемый список.

  • Создание пустого кортежа:
  • empty_tuple = ()
    empty_tuple = tuple()
  • Инициализация кортежа:
  • t = (1, 2, 3)
    print(t) # (1, 2, 3)
    print(t[0]) # 1

Словари

Словари в питоне хранят данные в виде пары ключ-значение. Ключи в обычном словаре хранятся без гарантии порядка. То есть в отличие от списка элементы словаря имеют не числовой индекс, а произвольный. Словари еще могут называться ассоциативными массивами.

  • Создание пустого словаря:
  • empty_dict = {} # способ 1
    empty_dict = dict() # способ 2
  • Инициализация элементов словаря:
  • students = {
    'Иван': ['2', '5', '4'],
    'Петр': ['4', '4']
    }
    print(students) # {'Петр': ['4', '4'], 'Иван': ['2', '5', '4']}

    Значения ключей должны быть уникальными, то есть двух одинаковых ключей в словаре быть не может.
    Пример работы со словарем:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    # Создадим пустой словарь ColorsTranslator
    ColorsTranslator = dict()
     
    # Заполним его несколькими значениями
    ColorsTranslator['Green'] = 'Зеленый'
    ColorsTranslator['Red'] = 'Красный'
    ColorsTranslator['Yellow'] = 'Желтый'
     
    # создаем массив (список) для работы со словарем
    Colors = ['Green', 'Red', 'Yellow'] 
     
    for color in Colors:
        # Для каждого цвета из списка проверяем, есть ли он в словаре
        if color in ColorsTranslator:
            print('Перевод цвета ' + color + ': ' + ColorsTranslator[color])
        else:
            print('В базе нет цвета с названием ' + color )

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

    Удаление элемента
  • Для удаления элемента используется процедура del A[key]. Если удаляемый ключ отсутствует в словаре, то будет возвращено исключение. Для того, чтобы избежать исключения, применяется безопасное удаление с использованием оператора try...except:
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    A = {'red' : 'красный', 'green' : 'зеленый', 'blue' : 'синий'}
     
    key = 'yellow'
    if key in A:
      del A[key]
     
    try:
      del A[key]
    except KeyError:
      print('There is no element with key "' + key + '" in dict')
    print(A)

    В результате в окне ввода мы увидим:

    There is no element with key "yellow" in dict
    {'red': 'красный', 'green': 'зеленый', 'blue': 'синий'}
  • Удалить элемент также можно используя метод pop:
  • A.pop(key)
    Перебор элементов
    A = {'red' : 'красный', 'green' : 'зеленый', 'blue' : 'синий'}
    for key in A:
      print(key, A[key])

    В результате мы увидим:

    red красный
    green зеленый
    blue синий

    Или так:

    A = {'red' : 'красный', 'green' : 'зеленый', 'blue' : 'синий'}
    for key, val in A.items():
        print(key, val)
    Значение по ключу

    A.get(key) — метод возвратит None, если элемента с ключом key нет в словаре.

    Задание 6_1 dict:

    Задан словарь перевода цветов с английского языка на русский (пары англ: русск). Словарь не вводить, а инициализировать значениями в программе. Все слова в словаре различны. 1) Выведите весь словарь. 2) Выведите перевод последнего слова в словаре. 3) Удалите из словаря слово red.

    Желаемый результат:

    Словарь:
    red красный
    green зеленый
    yellow желтый
    Последнее слово:
    yellow желтый
    Удаление слова: 
    green зеленый
    yellow желтый
    Задание 6_2 dict:

    В первой строке содержится число N — число элементов в словаре. Дан список (словарь) стран и рек, протекающих в каждой стране. Затем даны названия рек (в виде списка). Выполните задания:
    1) Для каждой реки укажите, в какой стране она протекает.
    2) Проверьте, есть ли введенное название реки в словаре (вывести есть или нет)
    3) Добавьте новую пару страна-река в словарь.
    4) Удалите из словаря реку (название реки запросить).