Python Listeler
Python listelerinin ne olduğu, nasıl kullanıldığı ve liste elemanları üzerinde temel işlemleri öğrenin.
Python'da listeler, çok yönlü ve en sık kullanılan veri yapılarından biridir. Birden fazla öğeyi sıralı bir şekilde depolamanıza olanak tanıyan bir tür "koleksiyon" veya "dizi" olarak düşünebilirsiniz.
### Python Listeler Nedir?
Python listeler, aşağıdaki temel özelliklere sahip, sıralı, değiştirilebilir (mutable) ve farklı türde öğeleri barındırabilen veri yapılarıdır:
1. **Sıralı (Ordered):** Öğeler eklendikleri sırayı korurlar. Her öğenin bir indeksi (konumu) vardır ve bu indeksler 0'dan başlar.
2. **Değiştirilebilir (Mutable):** Bir liste oluşturulduktan sonra öğelerini değiştirebilir, ekleyebilir veya silebilirsiniz.
3. **Farklı Türde Öğeler (Heterogeneous):** Bir liste içinde farklı veri türlerinden (integer, string, float, boolean, hatta başka listeler veya objeler) öğeler bulunabilir.
4. **Köşeli Parantezler (`[]`):** Listeler köşeli parantezler `[]` ile tanımlanır ve öğeler virgülle ayrılır.
**Örnek:**
```python
bos_liste = []
sayilar = [1, 2, 3, 4, 5]
isimler = ["Ali", "Ayşe", "Mehmet"]
karisik_liste = ["Elma", 123, True, 3.14, ["a", "b"]]
```
### Ne İşe Yarar? (Kullanım Alanları)
Python listeler, programlamada birçok farklı senaryoda kullanılır:
1. **Veri Depolama:** Benzer veya ilişkili veri gruplarını tek bir yapıda saklamak için kullanılır. (Örn: Bir kullanıcının alışveriş sepetindeki ürünler, bir öğrencinin notları).
2. **Veri Sıralama ve Yönetimi:** Öğeleri sıralamak, filtrelemek, eklemek veya çıkarmak gerektiğinde idealdir.
3. **İterasyon (Döngü):** Bir listedeki her öğe üzerinde döngü yapmak ve her öğe için belirli bir işlem uygulamak çok kolaydır.
4. **Algoritma Geliştirme:** Birçok algoritma (arama, sıralama, kuyruk, yığın vb.) listeler veya listeye benzer yapılar üzerinde çalışır.
5. **Dinamik Boyut:** Program çalışırken boyutunun değişmesi gereken koleksiyonlar için uygundur, çünkü kolayca öğe ekleyip çıkarabilirsiniz.
6. **Fonksiyonlara Argüman Olarak Geçirme:** Bir dizi veriyi tek bir argüman olarak bir fonksiyona geçirmek için kullanılabilir.
### Nasıl Kullanılır?
Listelerin temel kullanım şekillerini örneklerle inceleyelim:
#### 1. Liste Oluşturma
```python
# Boş liste
liste1 = []
# Başlangıç değerleriyle liste
liste2 = [10, 20, 30, 40]
liste3 = ["Python", "Java", "C++"]
liste4 = [1, "Merhaba", True, 3.14] # Karışık türler
# list() fonksiyonu ile başka bir iterable'dan oluşturma
metin = "merhaba"
liste5 = list(metin) # ['m', 'e', 'r', 'h', 'a', 'b', 'a']
sayi_araligi = range(5) # 0, 1, 2, 3, 4
liste6 = list(sayi_araligi) # [0, 1, 2, 3, 4]
```
#### 2. Öğelere Erişme (İndeksleme)
Listelerdeki öğelere indeks numaraları (0'dan başlayarak) ile erişilir.
```python
meyveler = ["Elma", "Armut", "Kiraz", "Muz"]
print(meyveler[0]) # Çıktı: Elma (İlk öğe)
print(meyveler[2]) # Çıktı: Kiraz (Üçüncü öğe)
# Negatif indeksleme: Sondan başlar (-1 son öğeyi temsil eder)
print(meyveler[-1]) # Çıktı: Muz (Son öğe)
print(meyveler[-2]) # Çıktı: Kiraz (Sondan ikinci öğe)
```
#### 3. Dilimleme (Slicing)
Listenin bir kısmına erişmek için kullanılır: `liste[başlangıç:bitiş:adım]`
```python
rakamlar = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(rakamlar[2:6]) # Çıktı: [2, 3, 4, 5] (indeks 2'den başla, 6'ya kadar (6 dahil değil))
print(rakamlar[:5]) # Çıktı: [0, 1, 2, 3, 4] (Baştan indeks 5'e kadar)
print(rakamlar[7:]) # Çıktı: [7, 8, 9] (İndeks 7'den sona kadar)
print(rakamlar[::2]) # Çıktı: [0, 2, 4, 6, 8] (Tüm listeyi 2'şer atlayarak)
print(rakamlar[::-1]) # Çıktı: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] (Listeyi ters çevirir)
```
#### 4. Öğeleri Değiştirme
Listeler değiştirilebilir olduğu için var olan bir öğeyi güncelleyebilirsiniz.
```python
urunler = ["Kalem", "Silgi", "Defter"]
print(urunler) # Çıktı: ['Kalem', 'Silgi', 'Defter']
urunler[1] = "Uçlu Kalem"
print(urunler) # Çıktı: ['Kalem', 'Uçlu Kalem', 'Defter']
# Bir dilimi de değiştirebilirsiniz
urunler[0:2] = ["Kurşun Kalem", "Tükenmez Kalem"]
print(urunler) # Çıktı: ['Kurşun Kalem', 'Tükenmez Kalem', 'Defter']
```
#### 5. Öğeleri Ekleme
* `append()`: Listenin sonuna öğe ekler.
* `insert()`: Belirli bir indekse öğe ekler.
* `extend()`: Bir iterable'daki (örneğin başka bir liste) tüm öğeleri mevcut listenin sonuna ekler.
```python
sayilar = [10, 20, 30]
sayilar.append(40)
print(sayilar) # Çıktı: [10, 20, 30, 40]
sayilar.insert(1, 15) # İndeks 1'e 15'i ekle
print(sayilar) # Çıktı: [10, 15, 20, 30, 40]
ek_sayilar = [50, 60]
sayilar.extend(ek_sayilar)
print(sayilar) # Çıktı: [10, 15, 20, 30, 40, 50, 60]
# İki listeyi birleştirmek için `+` operatörü de kullanılabilir (yeni bir liste oluşturur)
yeni_liste = [1, 2] + [3, 4]
print(yeni_liste) # Çıktı: [1, 2, 3, 4]
```
#### 6. Öğeleri Silme
* `del` anahtar kelimesi: Belirli bir indeksi veya dilimi siler.
* `pop()` metodu: Belirli bir indeksteki öğeyi siler ve silinen öğeyi döndürür. İndeks belirtilmezse son öğeyi siler.
* `remove()` metodu: Belirtilen *değere* sahip ilk öğeyi siler.
* `clear()` metodu: Listenin tüm öğelerini siler, listeyi boşaltır.
```python
harfler = ['a', 'b', 'c', 'd', 'e']
del harfler[1] # 'b' silindi
print(harfler) # Çıktı: ['a', 'c', 'd', 'e']
silinen_harf = harfler.pop(2) # 'd' silindi ve döndürüldü
print(harfler) # Çıktı: ['a', 'c', 'e']
print(silinen_harf) # Çıktı: d
harfler.remove('a') # 'a' değeri silindi
print(harfler) # Çıktı: ['c', 'e']
harfler.clear() # Tüm öğeler silindi
print(harfler) # Çıktı: []
```
#### 7. Liste Uzunluğu
`len()` fonksiyonu ile listenin eleman sayısını bulabilirsiniz.
```python
liste = [10, 20, 30, 40, 50]
uzunluk = len(liste)
print(uzunluk) # Çıktı: 5
```
#### 8. Öğelerin Varlığını Kontrol Etme
`in` anahtar kelimesi ile bir öğenin listede olup olmadığını kontrol edebilirsiniz.
```python
urunler = ["Elma", "Armut", "Kiraz"]
if "Elma" in urunler:
print("Elma listede var.")
if "Portakal" not in urunler:
print("Portakal listede yok.")
```
#### 9. Listelerde Döngü (İterasyon)
`for` döngüsü ile listenin her öğesi üzerinde işlem yapabilirsiniz.
```python
sehirler = ["İstanbul", "Ankara", "İzmir"]
for sehir in sehirler:
print(sehir)
# Çıktı:
# İstanbul
# Ankara
# İzmir
# Öğelerin indekslerine de ihtiyacınız varsa enumerate kullanın
for index, sehir in enumerate(sehirler):
print(f"{index}: {sehir}")
# Çıktı:
# 0: İstanbul
# 1: Ankara
# 2: İzmir
```
#### 10. Listeleri Sıralama
* `sort()` metodu: Listeyi yerinde (in-place) sıralar, yani orijinal listeyi değiştirir.
* `sorted()` fonksiyonu: Listenin sıralanmış *yeni bir kopyasını* döndürür, orijinal listeyi değiştirmez.
```python
sayilar = [3, 1, 4, 1, 5, 9, 2]
sayilar.sort() # Küçükten büyüğe sıralar (varsayılan)
print(sayilar) # Çıktı: [1, 1, 2, 3, 4, 5, 9]
sayilar.sort(reverse=True) # Büyükten küçüğe sıralar
print(sayilar) # Çıktı: [9, 5, 4, 3, 2, 1, 1]
meyveler = ["muz", "elma", "çilek", "armut"]
sirali_meyveler = sorted(meyveler) # Yeni bir liste döndürür
print(sirali_meyveler) # Çıktı: ['armut', 'elma', 'muz', 'çilek']
print(meyveler) # Çıktı: ['muz', 'elma', 'çilek', 'armut'] (Orijinal liste değişmez)
```
#### 11. Diğer Yararlı Metotlar
* `count()`: Bir öğenin listede kaç kez geçtiğini sayar.
* `index()`: Bir öğenin ilk geçtiği indeks numarasını döndürür.
* `copy()`: Listenin yüzeysel (shallow) bir kopyasını oluşturur.
```python
liste = [1, 2, 3, 2, 4, 2]
print(liste.count(2)) # Çıktı: 3 (2 sayısı 3 kez geçiyor)
print(liste.index(3)) # Çıktı: 2 (3 sayısı 2. indekste)
yeni_liste = liste.copy()
print(yeni_liste) # Çıktı: [1, 2, 3, 2, 4, 2]
```
Bu özellikler, Python listelerin neden bu kadar güçlü ve esnek bir veri yapısı olduğunu göstermektedir. Listeler, Python'da veri manipülasyonu ve depolama için temel bir araçtır.
Son Paylaşımlar
-
Python Temelleri Genel Tekrar
14:39:24 - 13/12/2025 -
Python Performans İpuçları
14:38:59 - 13/12/2025 -
Python’da Temiz Kod Yazma
14:38:28 - 13/12/2025 -
Python Mini Proje: Sayı Tahmin Oyunu
14:37:58 - 13/12/2025 -
Python Mini Proje: Hesap Makinesi
14:37:31 - 13/12/2025