Listenin index numaralarını değiştirme

my_list = list([‘apple’, ‘banana’, ‘orange’])

(my_list[0]) yazınca output apple
(my_list[1]) yazınca output banana
(my_list[2]) yazınca output orange

Benim istediğim ; index numaralarının bir kayması.

(my_list[1]) yazınca output apple
(my_list[2]) yazınca output banana
(my_list[3]) yazınca output orange

vermesi.

8

Takıldığınız yer neresi?

pass olan getitem fonksiyonunun içine ne yazmam gerektiğini anlayamadım. İlk defa böyle birşey görüyorum. İndex numaralarının değişmesini istiyor resmen soru. Nasıl yapıldığını bilenler varsa diye soruyorum sizlere.

Problem çok basit, bu sorunun ölçmek istediği asıl şey OOP bilginiz. Ben size örnek bir fonksiyon veriyim:

def romanindex(liste, index):
    return liste[index - 1]

liste = [1, 2, 3]

print(romanindex(liste, 1))
1 Beğeni

Aslinda @EkremDincel problemi cozmus ama tam olarak orada istenildigi gibi degil.
Orada istenilen bu islemi sihirli fonksiyonlar(magic functions) ile yapmaniz:

class RomanList(list):
    def __getitem__(self, index):
        return super().__getitem__(index-1)
    
my_list = RomanList(['apple', 'banana', 'orange'])
print(my_list[1])
>>> 'apple'

Umarim probleminizi dogru anlayip size yardimci olabilmisimdir iyi kodlamalar!

Ayrica belirteyim sihirli metodlar hakkinda kaynak cok az, ilgilenenler buradan goz atabilir: https://blog.boramalper.org/python-un-sihirli-metodlari/

3 Beğeni

mylist[-1] yazmayı dendin mi

Aslında @EkremDincel’in gönderisini dikkatli okursanız kendisi bir örnek vermiş, ki bence direkt olarak doğru cevabı vermektense cevap hakkında ipucu vermek soruyu soran arkadaşın öğrenmesine daha çok yardımcı olur.

2 Beğeni

Soruda böyle bir istek yok.

Türkçe kaynak*.

1 Beğeni

Haklisiniz dikkat etmedim umarim oyle ya da boyle arkadasimiza yardimci olmustur.

1 Beğeni

Bu sorun if else ile halledilebilir mesela sifir ise None ver sifirdan kucuk ise direkt index oldugu gibi kalsin diyerek

1 Beğeni