Зачем вам нужна лямбда для гнезда defaultdict?

Я немного смущен тем, почему вам нужна функция лямбда для вложенности defaultdict

Почему ты не можешь так сделать?

test = defaultdict(defaultdict(list)) 

вместо

 test = defaultdict(lambda:defaultdict(float)) 

One Solution collect form web for “Зачем вам нужна лямбда для гнезда defaultdict?”

 test = defaultdict(defaultdict(list)) 

Поскольку defaultdict требует, чтобы вы дали ему то, что можно вызвать для создания ключей для отсутствующих значений. list является таким вызываемым, но defaultdict(list) – нет. Это экземпляр defaultdict , и вы не можете вызвать defaultdict .

lambda – это функция, которая при вызове возвращает значение, которое может быть использовано в словаре, поэтому оно работает.

По сути, defaultdict(list) будет оцениваться до того, как будет defaultdict экземпляр defaultdict , и вы хотите отложить его до тех пор, пока не будет обнаружен недостающий ключ. Вот почему здесь используется вызываемый объект (тип или функция).

  • Что такое «привязка lambda» в Python?
  • Фильтрация столбцов в PySpark
  • lambda i = i: foo (i) in for loop не работает
  • удалить пунктуацию для каждой строки в кадре данных pandas
  • Эффективно вычислять частоту слов в строке
  • Python Многопоточность в наборе записей
  • Странное поведение лямбда в цикле
  • список сортировки json по значению python
  • Python - лучший язык программирования в мире.