Как обновить словарный ключ, который хранит свои значения в списке? - PullRequest
0 голосов
/ 04 мая 2020

Мне нужно обновить ключ словаря на основе списка, не удаляя предыдущие элементы списка. Тем не менее, из решений, я нахожу в Google, они обновляют значение полностью заменяется. Я хочу сохранить прежние элементы списка. У меня есть python словарь, в котором хранятся фазы проектов с завершенным процентом. Я буду sh обновлять процент выполнения до тех пор, пока весь этап не будет завершен на 100%. Вот мое определение словаря:

fiber_project = {"phase1":[10, 20,40,50], "phase2":[23, 39,90, 100],
                 "phase3":[30, 40,70, 100]}

Вот как я делаю обновление

#updating the phase2
fiber_project["phase2"] =[100]

Ниже приведен вывод enter image description here

Ответы [ 2 ]

2 голосов
/ 04 мая 2020

Поскольку fiber_project["phase2"] является списком, вы можете просто append добавить к нему:

fiber_project["phase2"].append(100)
1 голос
/ 04 мая 2020

Эта структура данных очень полезна, и python имеет хитрый способ ее построения, когда вы добавляете элемент к значению некоторого ключа, но еще не знаете, есть ли ключ в словаре или нет. Наивно, вы бы написали (как я делал изначально):

if key not in d:
     d[key] = []
d[key].append(val)

Этот код использует 3 строки и 2-3 доступа к словарю по ключу. Вы можете ограничить число обращений к жестким 2 за счет дополнительной строки кода, используя:

if key in d:
    d[key].append(val)
else:
    d[key] = [val]

Или, вы можете иметь одну строку и один словарь для доступа по ключу, используя dict.setdefault метод:

d.setdefault(key, []).append(val)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...