Генераторы словарей в Python — это эффективный и мощный инструмент для создания словарей в одной строке кода. Они основаны на концепции list comprehensions, но применяются для создания словарей.
Самый базовый пример генератора словарей в Python можно представить следующим образом:
dictionary = {k: v for k, v in iterable}
Здесь iterable
— это итерируемый объект, из которого мы получаем пары ключ-значение. На примере ниже мы создаем словарь, где ключами являются числа от 1 до 5, а значениями — их квадраты.
dictionary = {i: i**2 for i in range(1, 6)}
print(dictionary)
#{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Генераторы словарей также поддерживают условные конструкции. Это позволяет вам включать в словарь только те пары ключ-значение, которые удовлетворяют определенному условию.
dictionary = {i: i**2 for i in range(1, 6) if i%2 == 0}
print(dictionary)
#{2: 4, 4: 16}
В этом примере в словарь включаются только те числа, которые являются четными.
Если вам нужно проверить несколько условий, вы также можете использовать конструкции if...elif...else
внутри генератора словарей.
dictionary = {i: ('even' if i%2 == 0 else 'odd') for i in range(1, 6)}
print(dictionary)
#{1: 'odd', 2: 'even', 3: 'odd', 4: 'even', 5: 'odd'}
В этом примере ключами словаря являются числа от 1 до 5, а значениями — строки even
(для четных чисел) или odd
(для нечетных чисел).
Генераторы словарей могут использоваться для создания новых словарей на основе уже существующих словарей.
original_dictionary = {1: 'one', 2: 'two', 3: 'three'}
new_dictionary = {k: v.upper() for k, v in original_dictionary.items()}
print(new_dictionary)
#{1: 'ONE', 2: 'TWO', 3: 'THREE'}
В этом примере новый словарь создается на основе original_dictionary
, но все значения в новом словаре приводятся к верхнему регистру.
Генераторы словарей можно использовать для создания словарей на основе списков. Важно отметить, что ключи словаря должны быть уникальными.
list1 = ['one', 'two', 'three']
list2 = [1, 2, 3]
dictionary = {k: v for k, v in zip(list1, list2)}
print(dictionary)
#{'one': 1, 'two': 2, 'three': 3}
Здесь два списка объединяются в пары ключ-значение с помощью функции zip()
, после чего эти пары используются для создания словаря.
Генераторы словарей в Python — это эффективный и мощный инструмент для создания и модификации словарей. Они позволяют сократить количество кода и улучшить его читаемость, а также обеспечивают большую гибкость при работе со словарями.
Содержание: