Isim tel no listesindeki isimleri alfabetik olarak nasıl sıralayabilirim?

[‘Ahmet : 0533 123 23 34\n’, ‘Mehmet : 0532 212 22 22\n’, ‘Sami : 0542 333 34 34\n’, ‘Ali : 0545 989 09 09\n’, ‘Yunus \t:0543 567 78 88\n’, ‘Recep \t:0544 454 65 56\n’, ‘Ece\t:0544 555 55 55’]

Bu listedeki isimleri alıp alfabetik olarak nasıl sıralayabilirim?

Listedeki elemanları alfabetik olarak sıralamak için sorted fonksiyonunu kullanabilirsiniz.

liste = ["Ahmet : 0533 123 23 34\n", "Mehmet : 0532 212 22 22\n", "Sami : 0542 333 34 34\n", "Ali : 0545 989 09 09\n", "Yunus \t:0543 567 78 88\n", "Recep \t:0544 454 65 56\n", "Ece\t:0544 555 55 55"]

print(sorted(liste))

Yok eğer, bu listeden sadece isimleri alıp sıralamak istiyorsanız da aşağıdaki kodla bunu yapabilirsiniz:

print(sorted(i.split(":")[0].strip() for i in liste))

Ayrıca konudan bağımsız ama aşağıdaki başlığı da ziyaret etmenizi öneririm.

Şuan işte olduğum için örnek kod yazamıyorum ama sorted metodunu incelerseniz sorununuzu kendiniz çözersiniz diye düşünüyorum.

Şimdi hatırladım liste için sort() metodu kullanılıyor.sorted() metodu karakter dizileri için kullanılmıyor muydu?Kafam karıştı:worried:

Yo, sorted fonksiyonu listelerde ve demet tipindeki verilerde kullanilabilir.

Aralarındaki birkaç fark şunlardır:
1- sort metodu tuple ve dict veri tiplerini parametre olarak alamıyorken, sorted metodu alabiliyor.
2- sort metodu verilen parametresi sıraladıktan sonra geriye değiştirilmiş bir liste döndürür. Yani mesela bir listeyi parametre olarak verdiniz. Verdiğiniz listenin ilk halini kaybetmiş olursunuz. sorted metodu ise sort metodunun aksine listeyi geçici bir süreliğine sıralar. Aşağıda örnek kodu inceleyin:

liste = [3, 4, 5, 1, 2]

# Listemizi sıralayıp ilk halini
# görmeye çalışalım.
liste.sort()

print(liste)
# [1, 2, 3, 4, 5]
#Listemizin ilk halini kaybettik.

print("-"*15)

#Şimdi sorted() metoduyla değiştirelim
sorted(liste)

print(liste)
#[3, 4, 5, 1, 2]

#Listemizin orijinali halen elimizde```

sorted metodu argüman olarak aldığı veri tipini list tipinde döndürür. Bu iki metodu birbiriyle kıyaslamak olmaz, yerine göre birbirinden üstünlükleri olabilir.

çok teşekkür ederim.

Bu detayı fark etmemiştim.Çok aydınlatıcı oldu.Teşekkür ederim :slight_smile:

sort, list sinifinin bir fonksiyonu (metodu) ve parametre almiyor. sorted ise hic bir sinifa ait olmayan (metod olmayan) bir fonksiyon.

sort metodu bir sey dondurmuyor; uzerinde calistigi listeyi modifiye ediyor.
sorted fonksiyonu ise parametre olarak aldigi iterable’in sort edilmis halini yeni bir liste olarak donduruyor. Donen listenin orijinal veriden (veya baska herhangi bir degerden) daha gecici bir hali yok.

Yanlış biliyormuşum, kusura bakmayın. @aib teşekkür ederim bilgilendirdiğiniz için.

Aslinda dogru biliyorsun da yanlis ifade etmissin gibi geldi.

Neyse, rica ederim. Kolay gelsin.

1 Like