Python: Использование метода get Dictionary для возврата пустого списка по умолчанию вместо этого возвращается None!

В python я хотел бы создать словарь массивов, используя метод get из словаря, чтобы по умолчанию предоставить пустой список, чтобы затем заполнить информацией, например:

dict = {}
for i in range( 0, 10 ):
    for j in range( 0, 100 ):
        dict[i] = dict.get( i, [] ).append( j )

Однако, когда я пробую приведенный выше код, я не получаю исключений, но мой список заканчивается следующим образом:

AttributeError: объект 'NoneType' не имеет атрибута 'append'

Списки имеют метод добавления, поэтому я упростил свой тест до следующее:

dict = {}
for i in range( 0, 10 ):
    dict[i] = dict.get( i, [] ).append( i )

И результат был следующий:

{0: Нет, 1: Нет, 2: Нет, 3: Нет, 4: Нет, 5: Нет, 6: Нет, 7: Нет, 8 : None, 9: None}

Итак, мой вопрос: почему dict.get (i, []) по умолчанию возвращает None, а не []? Выполнение dict.get (i, list ()) имеет ту же проблему, поэтому я немного озадачен.

15
задан Danielb 24 April 2011 в 18:17
поделиться