Sort | Sorted |
Objenin kendisini sıralar | Objenin sıralanmış kopyasını oluşturur |
Obje içeriği güncellenir | Obje içeriği değişmez |
mylist = [1, 5, 4]sorted(mylist) # [1, 4, 5] mylist = [1, 5, 4]mylist.sort() # [1, 4, 5] mylist = [1, 4, 5]
🔑 dict
objeleri sıralanırken varsayılan olarak key
değerlerine göre sıralanırlar
mydict = {"a": 1, "e": 0, "b": 2}sorted(mydict) # ['a', 'b', 'e']sorted(mydict.keys()) # ['a', 'b', 'e']sorted(mydict.values()) # [0, 1, 2]sorted(mydict.items()) # [('a', 1), ('b', 2), ('e', 0)]sorted(mydict, key=lambda x: x.key) # 'str' object has no attribute 'key'sorted(mydict, key=lambda x: x.value) # 'str' object has no attribute 'value'
🏗️ Eğer sıralanacak objede birden fazla değişken varsa, sorted(<obje>, key=<func>)
yapısı ile istenen objeyi referans eden fonksiyon ile sıralama işlemi yapılır
⭐ Örnek fonksiyon: lambda x: x.value
ile x
objesinin value
elemanına göre sırala demiş oluyoruz
💁♂️ Sıralama işleminde obje içerisindeki belirli elemanların sıralı halini almak isterseniz, sorted(map(<func>, <param1>, <param2>))
yapısını kullanın
⭐ Örnek olarak: sorted(map(lambda p: p.x, points))
ile point elemanlarının x değerlerinin sıralı halini alırsınız
class Temp():def __init__(self, x, y):self.x = xself.y = ydef __str__(self):return f"Temp({self.x}, {self.y})"def __repr__(self):return f"Temp({self.x}, {self.y})"temp = [Temp(1, 2), Temp(2, 3), Temp(3, 4)]sorted(temp, key=lambda x: x.y) # [Temp(4,1), Temp(5,2), Temp(3,8)]sorted(temp, key=lambda x: x.x) # [Temp(3,8), Temp(4,1), Temp(5,2)]sorted(map(lambda x: x.y, temp)) # [1, 2, 8]sorted(map(lambda x: x.y, temp)) # [3, 4, 5]