2016-04-06 21 views
0

vs ben de benzer bir soru ama benim sorum verirPython ekleme listesinde + listeye

a = [[]] * 4 
b = [[]] * 4 
a[3] = a[3] + [1] 
b[3].append(1) 
print a, b 

aşağıdaki kod ile ilgili olarak daha olan Python list + list vs. list.append() okumak 2 farklı mı? Ben ... bu 2 yöntem farklı çıkışları var nerede böyle bir örnek girmek

Teşekkür

+0

http://stackoverflow.com/questions/36322067/the-meaning-of-on-list-in-python/36322093#36322093 Oluşturma ve değiştirme arasında büyük bir fark olabilir. –

cevap

2

a[3] = a[3] + [1]a[3] değiştirme değil hiç. Bunun yerine, orada yeni bir madde koyuyor. a[3] + [1], a[3] gibi bir liste oluşturur ve sonunda bir tane daha vardır. Ardından, a[3] = ...a, 3 dizinine bu yeni listeye ayarlar.

b[3].append(1)b[3] erişir ve .append() yöntemini kullanır. .append() yöntemi listenin kendisi üzerinde çalışır ve listenin sonuna bir tane koyar. [[]] * 4, başka bir listenin dört kopyası olan bir liste oluşturduğundan, .append() yöntemi, b öğesinin tüm öğelerindeki değişikliklerini gösterir.