@Fexest

Как изменить только один элемент в списке?

Привет, столкнулся с такой проблемой, нужно заменить только первый элемент, но вместе с ним заменятся второй, вот код
table = []
item = {'Mouse':{'name':'Мышка'} , 'Keybord':{'name':'Клавиатура'}}
def func():
    table.append(item['Mouse'])
    table.append(item['Mouse'])
    table.append(item['Keybord'])
    table[0]['name'] = 'USB'
    print(table)

И выводит это:
[{'name':'USB'},{'name':'USB'},{'name':'Клавиатура'},]
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
longclaps
@longclaps
table, func, item - давно здесь не было столь адского нейминга. Объяснять что-то не хочется. Разбирайтесь самостоятельно с тем, что такое mutable и immutable.
table = []
item = {'Mouse': {'name': 'Мышка'}, 'Keybord': {'name': 'Клавиатура'}}

def func():
    table.append(item['Mouse'].copy())
    table.append(item['Mouse'].copy())
    table.append(item['Keybord'].copy())
    table[0]['name'] = 'USB'
    print(table)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@MAGistr_MTM
Учусь программировать
У вас ссылка на один и тот же элемент.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы