DEV Community

Cover image for Python Listeleri (List): Sıfırdan İleri Seviyeye Kapsamlı Rehber
Vebende Akademi
Vebende Akademi

Posted on • Edited on

Python Listeleri (List): Sıfırdan İleri Seviyeye Kapsamlı Rehber

Python Listeleri (List): Sıfırdan İleri Seviyeye Kapsamlı Rehber

Python programlama dilinde en çok kullanılan veri yapılarından biri liste (list) yapısıdır. Bir Python geliştiricisinin günlük çalışmalarında verilerin büyük bölümü listeler içerisinde tutulur, işlenir, filtrelenir, sıralanır ve dönüştürülür.

Bir e-ticaret sistemindeki ürünler, bir CRM sistemindeki müşteriler, bir sensör ağından gelen veriler veya bir yapay zeka modelinin eğitim verileri çoğu zaman listeler içerisinde bulunur.

Bu makalede Python listelerini bol örnek ve uygulama ile detaylı şekilde inceleyeceğiz.


Liste Nedir?

Liste, birden fazla veriyi tek değişken altında saklamamızı sağlayan veri yapısıdır.

meyveler = ["Elma", "Armut", "Muz"]

print(meyveler)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

['Elma', 'Armut', 'Muz']
Enter fullscreen mode Exit fullscreen mode

Listenin Özellikleri

Listeler:

  • Sıralıdır
  • Değiştirilebilir (Mutable)
  • Tekrarlı veri tutabilir
  • Farklı veri tiplerini aynı anda saklayabilir
veriler = [
    "Ahmet",
    25,
    1.82,
    True
]

print(veriler)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

['Ahmet', 25, 1.82, True]
Enter fullscreen mode Exit fullscreen mode

Liste Oluşturma

Boş Liste

liste = []
Enter fullscreen mode Exit fullscreen mode

veya

liste = list()
Enter fullscreen mode Exit fullscreen mode

Veri ile Liste Oluşturma

sayilar = [10, 20, 30, 40]
Enter fullscreen mode Exit fullscreen mode
isimler = ["Ali", "Veli", "Ayşe"]
Enter fullscreen mode Exit fullscreen mode

Liste Elemanlarına Erişim

Python'da indeksler 0'dan başlar.

isimler = ["Ali", "Veli", "Ayşe"]

print(isimler[0])
print(isimler[1])
print(isimler[2])
Enter fullscreen mode Exit fullscreen mode

Çıktı:

Ali
Veli
Ayşe
Enter fullscreen mode Exit fullscreen mode

Negatif İndeks Kullanımı

isimler = ["Ali", "Veli", "Ayşe"]

print(isimler[-1])
print(isimler[-2])
Enter fullscreen mode Exit fullscreen mode

Çıktı:

Ayşe
Veli
Enter fullscreen mode Exit fullscreen mode

Liste Uzunluğu

urunler = [
    "Laptop",
    "Mouse",
    "Klavye",
    "Monitör"
]

print(len(urunler))
Enter fullscreen mode Exit fullscreen mode

Çıktı:

4
Enter fullscreen mode Exit fullscreen mode

Listeyi Döngü ile Gezmek

For Döngüsü

meyveler = ["Elma", "Armut", "Muz"]

for meyve in meyveler:
    print(meyve)
Enter fullscreen mode Exit fullscreen mode

İndeks ile Gezmek

meyveler = ["Elma", "Armut", "Muz"]

for i in range(len(meyveler)):
    print(i, meyveler[i])
Enter fullscreen mode Exit fullscreen mode

Listeye Eleman Ekleme

append()

Listenin sonuna ekler.

sayilar = [10, 20]

sayilar.append(30)

print(sayilar)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[10, 20, 30]
Enter fullscreen mode Exit fullscreen mode

insert()

Belirli pozisyona ekler.

sayilar = [10, 30]

sayilar.insert(1, 20)

print(sayilar)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[10, 20, 30]
Enter fullscreen mode Exit fullscreen mode

Listeye Çoklu Eleman Eklemek

extend()

liste1 = [1, 2, 3]
liste2 = [4, 5, 6]

liste1.extend(liste2)

print(liste1)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[1, 2, 3, 4, 5, 6]
Enter fullscreen mode Exit fullscreen mode

Listeden Eleman Silmek

remove()

isimler = ["Ali", "Veli", "Ayşe"]

isimler.remove("Veli")

print(isimler)
Enter fullscreen mode Exit fullscreen mode

pop()

sayilar = [10, 20, 30]

sayilar.pop()

print(sayilar)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[10, 20]
Enter fullscreen mode Exit fullscreen mode

Belirli İndeksi Silmek

sayilar = [10, 20, 30]

sayilar.pop(1)

print(sayilar)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[10, 30]
Enter fullscreen mode Exit fullscreen mode

del

sayilar = [10, 20, 30]

del sayilar[1]

print(sayilar)
Enter fullscreen mode Exit fullscreen mode

Liste Temizleme

sayilar = [1, 2, 3, 4]

sayilar.clear()

print(sayilar)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[]
Enter fullscreen mode Exit fullscreen mode

Liste Sıralama

sort()

sayilar = [50, 10, 90, 30]

sayilar.sort()

print(sayilar)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[10, 30, 50, 90]
Enter fullscreen mode Exit fullscreen mode

Ters Sıralama

sayilar.sort(reverse=True)

print(sayilar)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[90, 50, 30, 10]
Enter fullscreen mode Exit fullscreen mode

sorted()

Orijinal listeyi bozmaz.

sayilar = [50, 10, 90]

yeni = sorted(sayilar)

print(yeni)
print(sayilar)
Enter fullscreen mode Exit fullscreen mode

Liste Ters Çevirme

sayilar = [1, 2, 3, 4]

sayilar.reverse()

print(sayilar)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[4, 3, 2, 1]
Enter fullscreen mode Exit fullscreen mode

Dilimleme (Slicing)

İlk 3 Eleman

sayilar = [10,20,30,40,50]

print(sayilar[:3])
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[10, 20, 30]
Enter fullscreen mode Exit fullscreen mode

Son 2 Eleman

print(sayilar[-2:])
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[40, 50]
Enter fullscreen mode Exit fullscreen mode

Ortadaki Elemanlar

print(sayilar[1:4])
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[20, 30, 40]
Enter fullscreen mode Exit fullscreen mode

Liste Kopyalama

Hatalı Yöntem

liste1 = [1,2,3]

liste2 = liste1
Enter fullscreen mode Exit fullscreen mode

Bu durumda iki değişken aynı nesneyi gösterir.


Doğru Yöntem

liste1 = [1,2,3]

liste2 = liste1.copy()
Enter fullscreen mode Exit fullscreen mode

veya

liste2 = liste1[:]
Enter fullscreen mode Exit fullscreen mode

Listelerde Arama

in Operatörü

meyveler = ["Elma","Muz","Armut"]

print("Muz" in meyveler)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

True
Enter fullscreen mode Exit fullscreen mode

index()

meyveler = ["Elma","Muz","Armut"]

print(meyveler.index("Muz"))
Enter fullscreen mode Exit fullscreen mode

Çıktı:

1
Enter fullscreen mode Exit fullscreen mode

count()

sayilar = [1,2,3,2,2,4]

print(sayilar.count(2))
Enter fullscreen mode Exit fullscreen mode

Çıktı:

3
Enter fullscreen mode Exit fullscreen mode

Liste Birleştirme

a = [1,2,3]
b = [4,5,6]

c = a + b

print(c)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[1,2,3,4,5,6]
Enter fullscreen mode Exit fullscreen mode

List Comprehension

Python geliştiricilerinin vazgeçilmez aracıdır.

Karelerini Almak

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

kareler = [x*x for x in sayilar]

print(kareler)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[1,4,9,16,25]
Enter fullscreen mode Exit fullscreen mode

Çift Sayıları Filtrelemek

sayilar = range(20)

ciftler = [x for x in sayilar if x % 2 == 0]

print(ciftler)
Enter fullscreen mode Exit fullscreen mode

İç İçe Listeler

matris = [
    [1,2,3],
    [4,5,6],
    [7,8,9]
]
Enter fullscreen mode Exit fullscreen mode

Matris Elemanına Erişim

print(matris[1][2])
Enter fullscreen mode Exit fullscreen mode

Çıktı:

6
Enter fullscreen mode Exit fullscreen mode

Hands-On 1: Öğrenci Not Sistemi

notlar = [70, 85, 90, 65, 100]

ortalama = sum(notlar) / len(notlar)

print("Ortalama:", ortalama)
print("En Yüksek:", max(notlar))
print("En Düşük:", min(notlar))
Enter fullscreen mode Exit fullscreen mode

Hands-On 2: Satış Analizi

satislar = [
    1200,
    1500,
    1800,
    1300,
    2100,
    1700
]

print("Toplam:", sum(satislar))
print("Ortalama:", sum(satislar)/len(satislar))
Enter fullscreen mode Exit fullscreen mode

Hands-On 3: Kelime Frekans Analizi

metin = """
python veri bilimi python yapay zeka
python programlama veri analizi
"""

kelimeler = metin.split()

benzersiz = set(kelimeler)

for kelime in benzersiz:
    print(kelime, kelimeler.count(kelime))
Enter fullscreen mode Exit fullscreen mode

Hands-On 4: En Çok Satan Ürün

urunler = [
    "Laptop",
    "Mouse",
    "Laptop",
    "Klavye",
    "Laptop",
    "Mouse"
]

en_cok = max(
    set(urunler),
    key=urunler.count
)

print(en_cok)
Enter fullscreen mode Exit fullscreen mode

Hands-On 5: İlk 10 Fibonacci Sayısı

fibonacci = [0, 1]

for i in range(8):
    fibonacci.append(
        fibonacci[-1] +
        fibonacci[-2]
    )

print(fibonacci)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
Enter fullscreen mode Exit fullscreen mode

İleri Seviye: enumerate()

isimler = [
    "Ali",
    "Ayşe",
    "Mehmet"
]

for index, isim in enumerate(isimler):
    print(index, isim)
Enter fullscreen mode Exit fullscreen mode

İleri Seviye: zip()

isimler = [
    "Ali",
    "Ayşe",
    "Mehmet"
]

notlar = [
    70,
    80,
    95
]

for isim, notu in zip(isimler, notlar):
    print(isim, notu)
Enter fullscreen mode Exit fullscreen mode

İleri Seviye: Lambda ile Sıralama

personeller = [
    ("Ali", 45000),
    ("Ayşe", 65000),
    ("Mehmet", 55000)
]

sirali = sorted(
    personeller,
    key=lambda x: x[1]
)

print(sirali)
Enter fullscreen mode Exit fullscreen mode

Performans Bilgileri

İşlem Karmaşıklık
append() O(1)
pop() O(1)
index() O(n)
remove() O(n)
in O(n)
sort() O(n log n)
len() O(1)

Profesyonel Geliştirici Tavsiyeleri

Liste kullanın:

  • Sıralama önemliyse
  • Veri sayısı orta büyüklükteyse
  • İndeks erişimi gerekiyorsa

Set kullanın:

  • Benzersiz veri gerekiyorsa
  • Hızlı arama gerekiyorsa

Dictionary kullanın:

  • Anahtar-değer yapısı gerekiyorsa

Tuple kullanın:

  • Veri değişmeyecekse

Özet

Python listeleri, dilin en temel ve en güçlü veri yapılarından biridir. Bir Python geliştiricisi;

  • Liste oluşturmayı
  • Eleman eklemeyi/silmeyi
  • Sıralamayı
  • Dilimlemeyi
  • List comprehension kullanımını
  • İç içe listeleri
  • enumerate ve zip fonksiyonlarını

çok iyi seviyede bilmelidir. Veri analizi, web geliştirme, yapay zeka, otomasyon ve sistem programlama projelerinin büyük bölümü listeler üzerine kuruludur. Listeleri etkin kullanabilen bir geliştirici, Python ekosistemindeki diğer veri yapıları olan Set, Tuple, Dictionary, NumPy Array ve Pandas DataFrame yapılarını da çok daha hızlı öğrenebilir.

Top comments (0)