Задать вопрос
@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':'Клавиатура'},]
  • Вопрос задан
  • 124 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Решения вопроса 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
Учусь программировать
У вас ссылка на один и тот же элемент.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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