Функция collection.defaultdict возвращает значение по умолчанию, которое может быть определено с помощью лямбда-функции моего собственного , если ключ отсутствует в моем словаре.Функция lambda возвращает значение ключа для использования в defaultdict
Теперь я хочу, чтобы мой defaultdict возвращал неизмененное значение ключа, если этот ключ отсутствует. Таким образом, я использую функцию lambda identity lambda x: x. Я ожидаю, что defaultdict вернет ключ.
>>>translation=defaultdict(lambda x:x)
>>>translation['Haus']='maison'
>>>translation['computer']='ordinateur'
>>>translation['computer']
'ordinateur'
Однако, когда я представляю свою defaultdict с до сих пор отсутствующего ключа:
>>>translation['email']
Я ожидаю, что перевод defaultdict вернуться 'электронной почты'. Однако, python 2.7 говорит:
TypeError: <lambda>() takes exactly 1 argument (0 given)
Конечно, я делаю что-то глупое. Но что ?
Возможный дубликат [Как сделать словарь python, который возвращает ключ для ключей, отсутствующих в словаре вместо повышения KeyError?] (Http://stackoverflow.com/questions/6229073/how-to-make-a- python-dictionary-that-returns-key-for-keys-missing-from-the-dicti) –