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

  • Abbeydabby0277's channel

    Abbeydabby02

    9 ŞUBAT 2012
  • ExcelTutorials

    ExcelTutoria

    2 Mayıs 2009
  • TastyTuts | Creative video tutorials by Gareth David

    TastyTuts |

    6 Temmuz 2011