Python defaultdict и lambda

В чужом коде я прочитал следующие две строки:

x = defaultdict(lambda: 0)
y = defaultdict(lambda: defaultdict(lambda: 0))

В качестве аргумента defaultdict - это фабрика по умолчанию, я думаю, первая строка означает, что когда я вызываю x [k] для несуществующего ключа k (например, такого оператора, как v = x [k]), пара ключ-значение (k, 0) будет будет автоматически добавлен в словарь, как если бы сначала был выполнен оператор x [k] = 0. Я прав?

А как насчет y? Кажется, что фабрика по умолчанию создаст defaultdict со значением по умолчанию 0. Но что это конкретно означает? Я попытался поиграть с ним в оболочке Python, но не смог понять, что именно.

51
задан Fred Foo 7 December 2011 в 06:13
поделиться