reversed() ve sorted() Built-in Fonksiyonları

15-1.39.20

reversed() Fonksiyonu

Python’da bir de reversed() isimli built-in bir fonksiyon vardır. Bu, list sınıfının bir metodu değildir. Bu fonksiyon bizden dolaşılabilir bir nesne alır. Onun ters çevrilmiş halini bize bir dolaşım nesnesi yani iterator olarak verir, liste olarak değil. Bu fonksiyon ayrıca in-place bir işlem yapmaz yani orijinal nesnede bir değişiklik yapmaz. Bizim değerleri elde etmemiz için fonksiyonun geri verdiği dolaşım nesnesini dolaşmamız gerekir.

Dolaşım nesneleri, dolaşılabilir nesnelerden faklıdır, bir kere dolaşınca “biterler.” Onun dışında dolaşılabilir nesneler gibi kullanılabilirler.

Hatırlarsanız liste oluşturmanın bir yolunun da list() fonksiyonuna bir dolaşılabilir nesne vermekti. Biz burada reversed() ile elde ettiğimiz dolaşım nesnesini de verebiliriz. Bu sayede ters çevrilmiş bir nesne elde ederiz.

Aşağıdaki örneği inceleyelim:

>>> x = [1, 2, 3]
>>> y = reversed(x)

>>> type(y)
<class 'list_reverseiterator'>

>>> z = list(y)

>>> z
[3, 2, 1]

>>> z = list(y)

>>> z
[]

>>> type(y)
<class 'list_reverseiterator'>

Burada ilk olarak y nin türünün liste olmadığına list_reverseiterator gibi “garip” bir tür olduğuna dikkat edelim. Ama olsun, list(y) olarak yeni bir liste oluşturabildik. Fakat dolaşım nesneleri bittiği için aynı satırı tekrar çalıştırdığımızda yeni liste boş oldu çünkü bir tur dolaştık ve bitti.


reversed() fonksiyonu argüman olarak herhangi bir dolaşılabilir nesneyi alabilir (bunu birazdan yalanlayacağız!). Mesela str de dolaşılabilir bir nesne demiştik. O zaman:

>>> x = reversed('alper')

>>> type(x)
<class 'reversed'>

>>> list(x)
['r', 'e', 'p', 'l', 'a']

>>> list(x)
[]

Dikkat

reversed() fonksiyonun argümanı aslında herhangi bir dolaşılabilir nesne OLAMAZ. Bu argümanın reverse iterable yani tersten dolaşılabilir bir nesne olması gerekmektedir. list ve str bu özelliğe sahip olduğu için bu fonksiyonla kullanabildik.

sorted() Fonksiyonu

Bu da bir built-in fonksiyondur. Bize sıralanmış yeni bir list verir. Fonksiyon dolaşılabilir bir nesneyi parametre olarak alabilir.

Örneğin:

>>> x = sorted('alper')

>>> type(x)
<class 'list'>

>>> x
['a', 'e', 'l', 'p', 'r']

15-1.55.35

💭 Yorumlar

Yorum altyapısı giscus tarafından (evet tarafından!) sağlanmaktadır. Yorum yazabilmek için GitHub hesabınız üzerinden giriş yapmanız gerekmektedir. Yorumlar, Github Discussions üzerinde saklanmaktadır.

d8504d59-318d-49fa-a7d2-e32b307569ae