2016-01-19 2 views
1

Почему я не могу напрямую изменить значение списка в следующем dict?Изменение значения списка ключа в словаре напрямую

price_to_names = {'$': [], '$$': []} 
price_to_names['$'] = price_to_names['$'].append('hello') 

Следующий код изменяет Dict на

{'$': None, '$$': []} 

Я хотел бы price_to_names стать

{'$': ['hello'], '$$': []} 
+3

Дубликат http://stackoverflow.com/questions/16641119/why-does-append-return-none-in-this-code, HTTP : //stackoverflow.com/questions/20016802/why-the-list-append-return-none? – alecxe

ответ

1

append не возвращает новый список, если модифицирует список на месте.

price_to_names['$'].append('hello') является None, потому что метод append возвращает список None. Вот почему вы назначаете None в качестве значения для ключа '$'. Не используйте задание, просто добавить в свой список:

>>> price_to_names = {'$': [], '$$': []} 
>>> price_to_names['$'].append('hello') 
>>> price_to_names 
{'$$': [], '$': ['hello']}