SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caramella Girls

    Caramella Gi

    19 Mayıs 2008
  • TheDroidDemos

    TheDroidDemo

    15 ŞUBAT 2011
  • Crossover

    Crossover

    18 HAZİRAN 2007