Почему цепочечный словарь.get() в python возвращает кортеж, если по умолчанию не кортеж?

Python 2.6.6, когда я вызываю.get для результатов.get, результатом является кортеж. Это не имеет смысла для меня. Пример:

box = {}.get('test1',{}).get('test2','hrmm'),
print type(box)

распечатывает

<type 'tuple'>

это не имеет смысла для меня. ясно, что по умолчанию во втором get это простая строка. так что дает? спасибо за понимание

2 ответа

Решение

У вас есть запятая в конце строки, поэтому вы получаете результат {}.get('test1',{}).get('test2','hrmm') в кортеже из одного элемента.

Вот пример того, как это работает с простым литералом:

>>> box = 1,
>>> box
(1,)
>>> type(box)
<type 'tuple'>

В вашем поле есть запятая

Другие вопросы по тегам