Я пытаюсь создать словарь (суммы), ключи которого - общая сумма списка, а значение - сам список. Этот список имеет различное количество элементов, но одно и то же имя. Каждый раз, когда элементы списка изменяются, и этот измененный список (с тем же именем) назначается другому ключу, также изменяется ранее назначенное значение для ключа.
В поисках подходящего ответа на этот вопрос я узнал отсюда (https://stackoverflow.com/a/52806573/7198441)), что это может быть из-за того, что Python также ссылается на списки (пожалуйста, исправьте меня, если я делаю ошибку здесь). Теперь я хочу знать , если есть способ, которым я могу назначить список, имеющий одно и то же имя, но разные элементы на разных этапах итерации, для разных ключей одного и того же словаря.
l = [1, 2, 3, 4, 5]
sums = {}
while len(l) :
l_sum = sum(l)
sums[l_sum] = l
print(sums)
print()
l.pop()
Фактический результат:
{15: [1, 2, 3, 4, 5]}
{15: [1, 2, 3, 4], 10: [1, 2, 3, 4]}
{15: [1, 2, 3], 10: [1, 2, 3], 6: [1, 2, 3]}
{15: [1, 2], 10: [1, 2], 6: [1, 2], 3: [1, 2]}
{15: [1], 10: [1], 6: [1], 3: [1], 1: [1]}
Ожидаемое:
{15: [1, 2, 3, 4, 5]}
{15: [1, 2, 3, 4, 5], 10: [1, 2, 3, 4]}
{15: [1, 2, 3, 4, 5], 10: [1, 2, 3, 4], 6: [1, 2, 3]}
{15: [1, 2, 3, 4, 5], 10: [1, 2, 3, 4], 6: [1, 2, 3], 3: [1, 2]}
{15: [1, 2, 3, 4, 5], 10: [1, 2, 3, 4], 6: [1, 2, 3], 3: [1, 2], 1: [1]}