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)
Çıktı:
['Elma', 'Armut', 'Muz']
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)
Çıktı:
['Ahmet', 25, 1.82, True]
Liste Oluşturma
Boş Liste
liste = []
veya
liste = list()
Veri ile Liste Oluşturma
sayilar = [10, 20, 30, 40]
isimler = ["Ali", "Veli", "Ayşe"]
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])
Çıktı:
Ali
Veli
Ayşe
Negatif İndeks Kullanımı
isimler = ["Ali", "Veli", "Ayşe"]
print(isimler[-1])
print(isimler[-2])
Çıktı:
Ayşe
Veli
Liste Uzunluğu
urunler = [
"Laptop",
"Mouse",
"Klavye",
"Monitör"
]
print(len(urunler))
Çıktı:
4
Listeyi Döngü ile Gezmek
For Döngüsü
meyveler = ["Elma", "Armut", "Muz"]
for meyve in meyveler:
print(meyve)
İndeks ile Gezmek
meyveler = ["Elma", "Armut", "Muz"]
for i in range(len(meyveler)):
print(i, meyveler[i])
Listeye Eleman Ekleme
append()
Listenin sonuna ekler.
sayilar = [10, 20]
sayilar.append(30)
print(sayilar)
Çıktı:
[10, 20, 30]
insert()
Belirli pozisyona ekler.
sayilar = [10, 30]
sayilar.insert(1, 20)
print(sayilar)
Çıktı:
[10, 20, 30]
Listeye Çoklu Eleman Eklemek
extend()
liste1 = [1, 2, 3]
liste2 = [4, 5, 6]
liste1.extend(liste2)
print(liste1)
Çıktı:
[1, 2, 3, 4, 5, 6]
Listeden Eleman Silmek
remove()
isimler = ["Ali", "Veli", "Ayşe"]
isimler.remove("Veli")
print(isimler)
pop()
sayilar = [10, 20, 30]
sayilar.pop()
print(sayilar)
Çıktı:
[10, 20]
Belirli İndeksi Silmek
sayilar = [10, 20, 30]
sayilar.pop(1)
print(sayilar)
Çıktı:
[10, 30]
del
sayilar = [10, 20, 30]
del sayilar[1]
print(sayilar)
Liste Temizleme
sayilar = [1, 2, 3, 4]
sayilar.clear()
print(sayilar)
Çıktı:
[]
Liste Sıralama
sort()
sayilar = [50, 10, 90, 30]
sayilar.sort()
print(sayilar)
Çıktı:
[10, 30, 50, 90]
Ters Sıralama
sayilar.sort(reverse=True)
print(sayilar)
Çıktı:
[90, 50, 30, 10]
sorted()
Orijinal listeyi bozmaz.
sayilar = [50, 10, 90]
yeni = sorted(sayilar)
print(yeni)
print(sayilar)
Liste Ters Çevirme
sayilar = [1, 2, 3, 4]
sayilar.reverse()
print(sayilar)
Çıktı:
[4, 3, 2, 1]
Dilimleme (Slicing)
İlk 3 Eleman
sayilar = [10,20,30,40,50]
print(sayilar[:3])
Çıktı:
[10, 20, 30]
Son 2 Eleman
print(sayilar[-2:])
Çıktı:
[40, 50]
Ortadaki Elemanlar
print(sayilar[1:4])
Çıktı:
[20, 30, 40]
Liste Kopyalama
Hatalı Yöntem
liste1 = [1,2,3]
liste2 = liste1
Bu durumda iki değişken aynı nesneyi gösterir.
Doğru Yöntem
liste1 = [1,2,3]
liste2 = liste1.copy()
veya
liste2 = liste1[:]
Listelerde Arama
in Operatörü
meyveler = ["Elma","Muz","Armut"]
print("Muz" in meyveler)
Çıktı:
True
index()
meyveler = ["Elma","Muz","Armut"]
print(meyveler.index("Muz"))
Çıktı:
1
count()
sayilar = [1,2,3,2,2,4]
print(sayilar.count(2))
Çıktı:
3
Liste Birleştirme
a = [1,2,3]
b = [4,5,6]
c = a + b
print(c)
Çıktı:
[1,2,3,4,5,6]
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)
Çıktı:
[1,4,9,16,25]
Çift Sayıları Filtrelemek
sayilar = range(20)
ciftler = [x for x in sayilar if x % 2 == 0]
print(ciftler)
İç İçe Listeler
matris = [
[1,2,3],
[4,5,6],
[7,8,9]
]
Matris Elemanına Erişim
print(matris[1][2])
Çıktı:
6
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))
Hands-On 2: Satış Analizi
satislar = [
1200,
1500,
1800,
1300,
2100,
1700
]
print("Toplam:", sum(satislar))
print("Ortalama:", sum(satislar)/len(satislar))
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))
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)
Hands-On 5: İlk 10 Fibonacci Sayısı
fibonacci = [0, 1]
for i in range(8):
fibonacci.append(
fibonacci[-1] +
fibonacci[-2]
)
print(fibonacci)
Çıktı:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
İleri Seviye: enumerate()
isimler = [
"Ali",
"Ayşe",
"Mehmet"
]
for index, isim in enumerate(isimler):
print(index, isim)
İleri Seviye: zip()
isimler = [
"Ali",
"Ayşe",
"Mehmet"
]
notlar = [
70,
80,
95
]
for isim, notu in zip(isimler, notlar):
print(isim, notu)
İleri Seviye: Lambda ile Sıralama
personeller = [
("Ali", 45000),
("Ayşe", 65000),
("Mehmet", 55000)
]
sirali = sorted(
personeller,
key=lambda x: x[1]
)
print(sirali)
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)