Опубликован: 26.11.2023 119
В Python есть очень мощные Pythonic способы быстрого и эффективного создания списков, словарей, множеств - буквально одной строкой кода.
На английском языке эти выражения называются:
List comprehension
- списковое включение или генератор списка (более подробно описано здесь);Dict comprehension
- генератор словарей;Set comprehension
- генератор множеств (подробнее описано здесь).Dict comprehension
- это быстрый и удобный способ создания словаря на основе исходного итерируемого объекта, содержащего пары ключ - значение (аналогичный List comprehension
).
Синтаксис: { key: value for key, value in iterable if condition
}
key
- ключи словаря;value
- значения ключей словаря;iterable
- исходный итерируемый объект, содержащий пары key - value
;condition
- условное выражение (необязательный элемент генератора), при выполнении которого элемент iterable
включается в создаваемый словарь.Dict comprehension
можно использовать для:
Dict comprehension
.# создание словаря на основе списков
list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
list_b = ["январь", "февраль", "март", "апрель", "май", "июнь",
"июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"]
print({key: val for key, val in zip(list_a, list_b)})
{1: 'январь', 2: 'февраль', 3: 'март', 4: 'апрель', 5: 'май', 6: 'июнь', 7: 'июль', 8: 'август', 9: 'сентябрь', 10: 'октябрь', 11: 'ноябрь', 12: 'декабрь'}
# создание словаря на основе функции range()
print({num: num**2 for num in range(1, 11)})
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}
# преобразование элементов существующего словаря
dict_num = {1: "Один", 2: "Два", 3: "Три", 4: "Четыре", 5: "Пять"}
print({key: x.lower() for key, x in dict_num.items() if key < 5})
{1: 'один', 2: 'два', 3: 'три', 4: 'четыре'}
Использование метода dict.setdefault() для эффективной работы со словарем
Метод dict.get() значение по умолчанию для отсутствующих ключей
Сортировка словарей по значениям
Методы преобразования списка в строку и обратно
Комментариев нет.