collections.defaultdict позволяет создать словарь, который возвращает значение по умолчанию, если запрашиваемого ключа нет (вместо того чтобы выбрасывать исключение KeyError).При создании
defaultdict необходимо указывать не само значение по умолчанию, а фабрику для его создания.Это позволяет создавать словари с бесконечным числом вложенных уровней, что дает возможность писать что-то вроде
d[a][b][c]...[z].
>>> def infinite_dict():
... return defaultdict(infinite_dict)
...
>>> d = infinite_dict()
>>> d[1][2][3][4] = 10
>>> dict(d[1][2][3][5])
{}
Такое поведение называется “автовивификация” (от англ. autovivification) — термин пришёл из языка Perl.
👉@BookPython
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Некоторые модули Python компилируются непосредственно в сам интерпретатор. Они называются встроенными модулями (built-in), и их не следует путать со стандартной библиотекой. Чтобы получить полный список таких модулей, можно использовать
Обычно вам не важно, является ли модуль встроенным или нет; однако стоит иметь в виду, что
📲 Мы в MAX
👉@BookPython
sys.builtin_module_names. Примеры таких модулей — sys, gc, time и т. д.Обычно вам не важно, является ли модуль встроенным или нет; однако стоит иметь в виду, что
import сначала ищет модуль среди встроенных. Поэтому будет загружен встроенный модуль sys, даже если в текущей директории есть файл sys.py. С другой стороны, если, например, в текущей директории есть файл datetime.py, он действительно может быть загружен вместо стандартного модуля datetime.👉@BookPython
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3