Я столкнулся с проблемой при добавлении списка в список 2D.В коде ниже, если я изменю b.append(a)
на b.append([*a])
, все работает!Но разве a
и [*a]
не одинаковы?
a = ['1', '1', '1']
b = []
def call_other(ar):
a[0], a[1], a[2] = ar[0], ar[1], ar[2]
print('a is', a)
b.append(a)
print('b is', b)
print()
def lop():
for i in range(5):
c = ['0', '1', '1']
if i > 1:
c = ['1', '0', '1']
call_other(c)
lop()
print('final b:', b)
Вывод:
a is ['0', '1', '1']
b is [['0', '1', '1']]
a is ['0', '1', '1']
b is [['0', '1', '1'], ['0', '1', '1']]
a is ['1', '0', '1']
b is [['1', '0', '1'], ['1', '0', '1'], ['1', '0', '1']]
a is ['1', '0', '1']
b is [['1', '0', '1'], ['1', '0', '1'], ['1', '0', '1'], ['1', '0', '1']]
a is ['1', '0', '1']
b is [['1', '0', '1'], ['1', '0', '1'], ['1', '0', '1'], ['1', '0', '1'], ['1', '0', '1']]
final b: [['1', '0', '1'], ['1', '0', '1'], ['1', '0', '1'], ['1', '0', '1'], ['1', '0', '1']]