Python: мой словарь, в котором хранятся имена, не может хранить более одного имени за раз - PullRequest
0 голосов
/ 31 января 2011

Итак, я создал словарь, который хранит имена в виде списка в этом словаре. Новые имена добавляются в список словаря с помощью функции. Вот где я попал в ловушку:

Основное препятствие: Функция перезаписывает новые имена, которые я добавляю. Если я добавлю имя «Джордж» в список с помощью функции, он сохранит имя «Джордж». Но я хочу добавить имя «Альфред» в словарь, оно перезаписывает имя «Джордж» и добавляет имя «Альфред».

Я уверен, что вы видите, насколько проблематично это для того, кто хочет добавить несколько имен в список словаря. Странно то, что когда я набираю тот же самый код в интерпретаторе и добавляю имена по отдельности в список словаря, он работает нормально.

Вот код:

def add(data,value):

data['names'] = {}
data['names']['first'] = []
data['names']['first'].append(value)

1 Ответ

4 голосов
/ 31 января 2011

Разве вы не задавали этот вопрос уже? ( Мой предыдущий ответ )

Вы всегда устанавливаете data['names'] в пустой словарь перед добавлением к нему значения.

def add(data, value):
    data.setdefault('names', {}).setdefault('first', []).append(value)

См. Документы по питону на dict.setdefault

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...