Функция Python list.append неожиданно изменяет предыдущий добавленный элемент [дубликат]Python

Программы на Python
Ответить
Anonymous
 Функция Python list.append неожиданно изменяет предыдущий добавленный элемент [дубликат]

Сообщение Anonymous »

Я сталкиваюсь с проблемой с Python, как ниже: < /p>


У меня есть 2 начальных списка: < /li>
< /ul>

first_list = [['a1', 'a2'], ['a1', 'a2']] < /p>

second_list = ['b1', 'b2'] < /p>


Я хочу заменить "b2" в second_list на каждую из значений из Другой список, затем добавьте его в First_list. Например: < /li>
< /ul>

parts = ['c', 'd'] < /p>

мой ожидаемый результат для First_list будет: [['a1', 'a2'], ['a1', 'a2'], ['b1', 'c'], ['b1', 'd'] ] < /p>

Вот мой код: < /p>

Код: Выделить всё

first_list = [['a1','a2'], ['a1','a2']]
second_list = ['b1','b2']

parts = ['C', 'D']

for record in parts:
print record    #print to see which value we will use to replace "b2"
temp = second_list
temp[1] = record
print temp      #print to see which value will be appended to first_list
first_list.append(temp)
print first_list     #print first_list after adding a new member
И результат:

Код: Выделить всё

C
['b1', 'C']
[['a1', 'a2'], ['a1', 'a2'], ['b1', 'C']]
D
['b1', 'D']
[['a1', 'a2'], ['a1', 'a2'], ['b1', 'D'], ['b1', 'D']]
Я подозреваю, что что-то не так, но не могу это объяснить. Замена функции «добавление» на функцию «вставка» по-прежнему приводит к той же проблеме. Может ли кто-нибудь мне помочь?

Спасибо

Подробнее здесь: https://stackoverflow.com/questions/522 ... expectedly
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»