ı yerde bu listenin her öğe artırmak istiyorum ben listemiziÖzgün nesnede, kopya için değil, python döngüsünde nasıl çalışırım?
a = [1,2,3]
olduğunu varsayalım. Ben a
hala döndüren döngü [1,2 bitirdim, bu nedenle zaman item
sadece değerini değil, onun gerçek referansı kullanır sözdizimsel kolay
for item in a:
item += 1
olarak ama bu örnek Python şey yapmak istiyorum 3] [2,3,4] yerine. Ben
a = map(lambda x:x+1, a)
gibi bir şey yapabileceğini biliyorum ama bu gerçekten benim şimdiki koduna uymuyor ve bunu yeniden yazmak zorunda kalmak istemem: - \ Burada
For döngüsü, aslında gerçek nesneyi verir, kopyalar değil. Mesele şu ki sayıları kullanıyorsun. Tüm Python değerleri gibi sayılar (ve dizeler), nesnelerdir, ancak her değişmez, benzersiz bir örneğe başvurur. Yani 1'den 2'ye kadar olan bir örneği değiştirebilirseniz, tüm 1'leri 2'lere çevirirsiniz, bu da hangi tür bir emici olur. Her değer için bir örneğe sahip olan seçenek, mümkün olmayacaktır. Id fonksiyonu ile oynamaya çalışın: id (1), id ('merhaba dünya'), vb (her zaman aynı hazır bilgi için aynı adresi döndürür.) – Blixt