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

Итак, у меня есть словарь, я его назову (а) и запускаю цикл для сортировки нескольких других словарей по ключам (а) на основе конкретного тега, который есть у каждого из них, но этоне имеет значения.Проблема в том, что при каждом запуске цикла словарь обновляется, а предыдущее значение заменяется новым.Я хочу, чтобы цикл продолжал добавлять значения в (a), если он находит какие-либо новые, а не заменяет исходное значение.Я попробовал это:

          dictionary[i] = smalldict

, где i - необходимый ключ, а smalldict - меньший словарь, который я циклически перебираю с циклом for.Всякий раз, когда выполняется эта строка кода, предыдущее значение smalldict заменяется новым.Как мне сделать так, чтобы он «добавлял» вновь найденное значение к ключу словаря, не удаляя старое?

tl / dr: Как заставить словарь сохранить свои первоначальные значения и добавить новые?

Спасибо!

1 Ответ

0 голосов
/ 04 декабря 2018

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

a = {}
b = dict(a=1, b=2, c=3)
c = dict(b=9,c=10, d=99)

def append_items_to_dict(d_in: dict, d_out: dict):
    for k, v in d_in.items():
        d_out.setdefault(k, []).append(v)

append_items_to_dict(b, a)
append_items_to_dict(c, a)
print(a)

результат

{'a': [1], 'b': [2, 9], 'c': [3, 10], 'd': [99]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...