Menu

Python Listeleri: Oluşturma, İndeksleme, Append, Sıralama ve İterasyon

Python listelerinde pratik bir tur — en yaygın koleksiyon — oluşturma, indeksleme, dilimleme, append, sort ve en çok başvuracağın kalıplar.

Listeler Sıralı, Değiştirilebilir Dizilerdir

Liste, Python'da en çok kullanılan koleksiyon tipidir. Değişebilecek — eklenecek, kaldırılacak, sıralanacak, güncellenecek — sıralı bir değerler kümesi tutuyorsan, liste neredeyse her zaman doğru seçimdir.

Birini köşeli parantezlerle oluşturursun:

main.py
Output
Click Run to see the output here.

Listeler her şeyi, hatta başka listeleri bile tutabilir. Pratikte çoğu liste tek tür bir şey tutar — bir kullanıcı listesi, bir sayı listesi — çünkü üzerinde akıl yürütmesi en kolay olan budur.

İndeksleme

Her elemanın 0'dan başlayan bir konumu vardır. Köşeli parantezlerle erişirsin:

main.py
Output
Click Run to see the output here.

Var olmayan bir index istemek IndexError fırlatır. Aralık dışına çıkma ihtimali varsa ya önce uzunluğu kontrol et ya da erişimi try içine al.

Dilimleme

Dilimleme sana bir aralık eleman verir. Söz dizimi list[start:stop:step], stringlerdekiyle aynı:

main.py
Output
Click Run to see the output here.

Kafana kazınması gereken iki şey:

  • Dilimleme her zaman yeni bir liste döner. Dilimi değiştirmek orijinali etkilemez.
  • Stop index'i dışlayıcıdır — nums[2:5] sana 2, 3 ve 4 index'lerini verir, 5'i değil.

Append, Extend ve Insert ile Eleman Eklemek

Listeye ekleme yapan üç metot farklı işler yapar ve bunları karıştırmak yaygın bir hata kaynağıdır:

main.py
Output
Click Run to see the output here.
  • append(x), x'i tek bir eleman olarak ekler — x bir liste olsa bile. items.append([1, 2]) listenin kendisini tek bir giriş olarak ekler.
  • extend(iterable), iterable'dan her bir elemanı ekler. items.extend([1, 2]) iki giriş ekler.
  • insert(i, x), belirli bir index'e ekler; i ve sonrasındaki her şeyi bir konum ileri iter.

+= sağında liste olduğunda extend gibi çalışır:

main.py
Output
Click Run to see the output here.

Çıkarma için:

main.py
Output
Click Run to see the output here.

Listede olmayan bir şeyi remove() etmeye çalışırsan Python ValueError fırlatır. "Varsa kaldır" istiyorsan, ya önce in ile kontrol et ya da bir try kullan.

Index ile del kullanarak da silebilirsin:

main.py
Output
Click Run to see the output here.

Uzunluk, Üyelik, Sayma

main.py
Output
Click Run to see the output here.

in, bir listenin bir değer içerip içermediğini kontrol etmenin okunaklı yoludur. Büyük bir listede bu soruyu defalarca soracaksan, onun yerine bir set kullan — set üyeliği O(1) iken liste üyeliği O(n)'dir.

Sıralama

İki yol var ve seçim önemli:

main.py
Output
Click Run to see the output here.

İkisi de azalan sıralama için reverse=True kabul eder:

main.py
Output
Click Run to see the output here.

Ve özel sıralama için bir key fonksiyonu:

main.py
Output
Click Run to see the output here.

key her elemana uygulanır ve karşılaştırılan, onun sonucudur. Yaygın durumlar: uzunluğa göre, belirli bir özniteliğe göre veya bir stringin küçük harfli haline göre sıralama.

Tersine Çevirme

Üç tat, ihtiyacına göre:

main.py
Output
Click Run to see the output here.

Orijinale ihtiyacın yoksa yerinde kullan. Yeni bir kopya istiyorsan dilimleme kullan. Yeni bir liste oluşturmadan sadece tersine iterasyon yapmak istiyorsan reversed() kullan.

Paylaşılan Referans Tuzağı

Listeler değiştirilebilir ve değişkenler referanstır. Bu, iki değişkenin aynı listeyi gösterebileceği anlamına gelir:

main.py
Output
Click Run to see the output here.

b = a listeyi kopyalamadı; b'yi aynı liste için ikinci bir isim yaptı. Bir kopya istiyorsan, iste:

main.py
Output
Click Run to see the output here.

Bu her Python programcısını en az bir kez ısırır. Unutma: iki liste arasındaki = kopyalamaz.

Döngü ve İnşa

Temel kalıbı for döngüsü sayfasından zaten biliyorsun:

main.py
Output
Click Run to see the output here.

Bu okunaklı ve her zaman işini görür. Alıştığında, list comprehension karşılığı aynı şeyi tek satırda yapar:

main.py
Output
Click Run to see the output here.

Comprehension'ları iki sayfa sonra ayrıntılı ele alacağız.

Hızlı Bir Çıkarım Cetveli

Bilmeye değer metotlar, bir bakışta:

  • append(x) — sona ekle
  • extend(iter) — iterable'dan her elemanı ekle
  • insert(i, x) — i index'ine ekle
  • pop() / pop(i) — kaldır ve döndür
  • remove(x) — x'in ilk geçişini kaldır
  • sort() / sort(key=...) / sort(reverse=True)
  • reverse()
  • index(x) — ilk x'in konumu
  • count(x) — x'lerin sayısı
  • copy() — sığ kopya

Sırada

Listeler iş atıdır. Sırada tuple'lara — değişmez kuzenine — bakacağız; bir liste yerine tuple'a uzanmanın daha iyi tercih olduğu zamanları göreceğiz.

Sıkça Sorulan Sorular

Python'da nasıl liste oluştururum?

Virgülle ayrılmış değerleri köşeli parantez içine yaz: fruits = ['apple', 'banana', 'cherry']. Listeler herhangi bir türde değer tutabilir ve aynı listede türler karıştırılabilir, gerçi çoğu gerçek liste alışkanlıktan ötürü homojendir.

Python'da listeyi nasıl sıralarım?

Listeyi yerinde sıralamak için üzerinde .sort() çağır ya da orijinali değiştirmeden yeni sıralı bir liste almak için yerleşik sorted(list)'i kullan. Her ikisi de azalan sıra için reverse=True bayrağını ve özel sıralama anahtarları için key= argümanını kabul eder.

Python'da bir listeyi nasıl tersine çeviririm?

list.reverse() yerinde tersine çevirir. list[::-1] yeni bir ters liste döndürür. reversed(list) üzerinde döngü kurabileceğin bir iterator döndürür. İhtiyacına göre birini seç: yerinde vs. yeni kopya vs. lazy iterasyon.

Coddy ile kodlamayı öğren

BAŞLA