27 EKİM 2008, PAZARTESİ
Listeleri, değişiklikler alt listelere beklenmedik üzerinden yansıyan Python listesi
Listeler listesini oluşturmak için Python ihtiyacım vardı, ben şu yazdığınız:
myList = [[1] * 4] * 3
Liste böyle görünüyordu:
[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]
Sonra en içteki değerler: bir değiştirdim
myList[0][0] = 5
Şimdi benim liste bu gibi görünüyor:
[[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]]
ne istediğimi ya da beklenmiyor. Birisi neler olduğunu ve bunu nasıl açıklayabilir?
CEVAP
27 EKİM 2008, PAZARTESİ
[x]*3 yazarken, aslında, 10* *liste olsun. Yani, x 3 referanslar içeren bir liste. Daha sonra x değiştirmek için üç başvuru değiştirilir.
Bunu düzeltmek için, her konumda yeni bir liste oluşturmak emin olun. Bunu yapmak için bir yoldur
[[1]*4 for n in range(3)]
Bunu PaylaÅŸ:

Bulma öğenin dizin listesi Python içer...
Nasıl sözlük değerlere göre sözlükler ...
Nasıl klon ya da Python içinde bir lis...
Nasıl HTTP üzerinden bir dosya Python ...
Nasıl Python ederken bir listesi düzen...