Простой Python. Современный стиль программирования (Любанович) - страница 42

>>>> dict(los)

>{'c': 'd', 'a': 'b', 'e': 'f'}

Кортеж, содержащий двухсимвольные строки:

>>>> tos = ('ab', 'cd', 'ef')

>>>> dict(tos)

>{'c': 'd', 'a': 'b', 'e': 'f'}

В подразделе «Итерирование по нескольким последовательностям с помощью функции zip()» раздела «Выполняем итерации с помощью for» главы 4 вы познакомитесь с функцией, которая называется zip(). Она позволит вам легко создавать такие двухэлементные последовательности.

Добавление или изменение элемента с помощью конструкции [ключ]

Добавить элемент в словарь довольно легко. Нужно просто обратиться к элементу по его ключу и присвоить ему значение. Если ключ уже существует в словаре, имеющееся значение будет заменено новым. Если ключ новый, он и указанное значение будут добавлены в словарь. Здесь, в отличие от списков, вам не нужно волноваться о том, что Python сгенерирует исключение во время присваивания нового элемента, если вы укажете, что этот индекс находится вне существующего диапазона.

Создадим словарь, содержащий большинство членов Monty Python, используя их фамилии в качестве ключей, а имена — в качестве значений:

>>>> pythons = {

>…·····'Chapman': 'Graham',

>…·····'Cleese': 'John',

>…·····'Idle': 'Eric',

>…·····'Jones': 'Terry',

>…·····'Palin': 'Michael',

>…·····}

>>>> pythons

>{'Cleese': 'John', 'Jones': 'Terry', 'Palin': 'Michael',

>'Chapman': 'Graham', 'Idle': 'Eric'}

Здесь не хватает одного участника — уроженца Америки Терри Гиллиама. Перед вами попытка анонимного программиста добавить его, однако он ошибся, когда вводил имя:

>>>> pythons['Gilliam'] = 'Gerry'

>>>> pythons

>{'Cleese': 'John', 'Gilliam': 'Gerry', 'Palin': 'Michael',

>'Chapman': 'Graham', 'Idle': 'Eric', 'Jones': 'Terry'}

А вот код другого программиста, который исправил эту ошибку:

>>>> pythons['Gilliam'] = 'Terry'

>>>> pythons

>{'Cleese': 'John', 'Gilliam': 'Terry', 'Palin': 'Michael',

>'Chapman': 'Graham', 'Idle': 'Eric', 'Jones': 'Terry'}

Используя один и тот же ключ ('Gilliam'), мы заменили исходное значение 'Gerry' на 'Terry'.

Помните, что ключи в словаре должны быть уникальными. Именно поэтому мы в качестве ключей использовали фамилии, а не имена — двух участников Monty Python зовут Терри. Если вы применяете ключ более одного раза, победит последнее значение:

>>>> some_pythons = {

>…·····'Graham': 'Chapman',

>…·····'John': 'Cleese',

>…·····'Eric': 'Idle',

>…·····'Terry': 'Gilliam',

>…·····'Michael': 'Palin',

>…·····'Terry': 'Jones',

>…·····}

>>>> some_pythons

>{'Terry': 'Jones', 'Eric': 'Idle', 'Graham': 'Chapman',

>'John': 'Cleese', 'Michael': 'Palin'}

Сначала мы присвоили значение 'Gilliam' ключу 'Terry', а затем заменили его на 'Jones'.