Ana Sayfa · Akademi · Robotik ve Kodlama · Python Temelleri · Listeler ve Sözlükler

Listeler ve Sözlükler

Listelerle sıralı veriyi, sözlüklerle anahtar-değer eşlemeyi tutmayı ve gezmeyi öğren.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

Liste birçok değeri sıralı biçimde bir arada tutan bir kutudur; sözlük ise her değeri bir anahtara bağlayarak saklar ve döngülerle bu verilerin hepsini kolayca gezebiliriz.

Üretilecek kanıt

Bir sınıfın notlarını tutan küçük bir program yazalım. Program hem tek tek nota bakabilsin hem de sınıf ortalamasını hesaplasın. notlar = {"Ada": 85, "Bora": 90, "Ceren": 78} # Yeni bir öğrenci ekle notlar["Deniz"] = 92 toplam = 0 for isim, not_degeri in notlar.items(): print(isim + " notu: " + str(not_degeri)) toplam = toplam + not_degeri ortalama = toplam…

Kontrol tuzağı

Index 0'dan başlar İlk elemanı liste[1] ile almaya çalışmak sık yapılan bir hatadır. Unutma: ilk eleman liste[0] 'dır. Olmayan index'i istemek Üç elemanlı bir listede liste[3] yoktur ve IndexError alırsın. En büyük geçerli index, uzunluğun bir eksiğidir. Sözlükte olmayan anahtarı çağırmak notlar["Efe"] diye ararsın…

Sonraki bağlantı

Fonksiyonlar: Tekrar eden kod bloklarına bir isim vererek kendi komutlarımızı yazmayı öğreneceğiz.

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre25–35 dk
Ön koşulFor ve While Döngüleri
İçerikStandart ders · 1.287 kelime
Son güncelleme

Bir cümlelik özet

Liste birçok değeri sıralı biçimde bir arada tutan bir kutudur; sözlük ise her değeri bir anahtara bağlayarak saklar ve döngülerle bu verilerin hepsini kolayca gezebiliriz.

Neden önemli?

Şimdiye kadar tek tek değişkenler kullandık: isim1, isim2, isim3. Peki sınıfta otuz öğrenci varsa otuz değişken mi yazacağız? Bu hem yorucu hem de yönetilmesi zor olur.

Gerçek programlar tek bir sayı değil, çoğu zaman bir veri topluluğu ile çalışır: alışveriş listesi, oyundaki oyuncu isimleri, bir sınıfın notları. Listeler ve sözlükler bu toplulukları düzenli tutmamızı sağlar. Döngülerle birleştiğinde ise yüzlerce veriyi birkaç satırda işleyebiliriz.

Bu derste iki temel veri yapısını öğreniyorum ve paylaşıyorum: liste ve sözlük. İkisini de gerçek Python 3 koduyla deneyeceğiz.

Liste nedir?

Liste (list), birden çok değeri belirli bir sırayla tutan bir veri yapısıdır. Değerleri köşeli parantez [ ] içine yazar, aralarına virgül koyarız.

isimler = ["Ada", "Bora", "Ceren"]
print(isimler)

Bu kod ekrana şunu yazar:

['Ada', 'Bora', 'Ceren']

Bir liste sayı da tutabilir:

notlar = [85, 90, 78, 100]
print(notlar)

Elemana erişim: index

Listedeki her elemanın bir sıra numarası (index) vardır. Önemli bir kural: sayma 0'dan başlar. Yani ilk eleman 0, ikinci eleman 1'dir.

isimler = ["Ada", "Bora", "Ceren"]
print(isimler[0])   # Ada
print(isimler[1])   # Bora
print(isimler[2])   # Ceren

Sondan da erişebiliriz. -1 her zaman son elemanı verir:

print(isimler[-1])  # Ceren

Olmayan bir index istersek Python IndexError hatası verir. Örneğin yukarıdaki listede isimler[3] yoktur, çünkü en büyük index 2'dir.

Listeye eleman ekleme: append

Bir listeye sonradan eleman eklemek için append() kullanırız. Bu komut yeni değeri listenin sonuna ekler.

isimler = ["Ada", "Bora"]
isimler.append("Ceren")
print(isimler)      # ['Ada', 'Bora', 'Ceren']

Boş bir listeyle başlayıp döngü içinde de doldurabiliriz:

isimler = []
isimler.append("Deniz")
isimler.append("Ege")
print(isimler)      # ['Deniz', 'Ege']

Kaç eleman var? len

len() fonksiyonu listedeki eleman sayısını verir:

isimler = ["Ada", "Bora", "Ceren"]
print(len(isimler))  # 3

Listeyi döngüyle gezmek

Önceki derste öğrendiğimiz for döngüsü, listenin en güçlü arkadaşıdır. Her elemanı tek tek dolaşır:

isimler = ["Ada", "Bora", "Ceren"]
for isim in isimler:
    print("Merhaba " + isim)

Çıktı:

Merhaba Ada
Merhaba Bora
Merhaba Ceren

Buradaki isim her turda listedeki bir sonraki değeri temsil eder. Döngü gövdesinin 4 boşlukla girintili olduğuna dikkat et; Python hangi satırların döngüye ait olduğunu bu girintiyle anlar.

Sözlük nedir?

Sözlük (dictionary), her değeri bir anahtar (key) ile eşleştirerek saklar. Gerçek bir sözlük gibi düşün: kelimeyi (anahtar) ararsın, karşısında anlamını (değer) bulursun.

Sözlükleri süslü parantez { } içinde, anahtar: değer biçiminde yazarız.

ogrenci = {"isim": "Ada", "yas": 12, "sinif": "6-B"}
print(ogrenci)

Listede elemana sıra numarasıyla ulaşırdık; sözlükte ise anahtar kullanırız:

print(ogrenci["isim"])   # Ada
print(ogrenci["yas"])    # 12

Sözlüğe yeni bilgi ekleme

Yeni bir anahtar-değer çifti eklemek çok kolaydır:

ogrenci = {"isim": "Ada", "yas": 12}
ogrenci["sehir"] = "İzmir"
print(ogrenci)

Çıktı:

{'isim': 'Ada', 'yas': 12, 'sehir': 'İzmir'}

Aynı yöntemle var olan bir değeri de güncelleyebiliriz. ogrenci["yas"] = 13 yazarsak yaş değeri değişir.

Örnek: Öğrenci-not sözlüğü

Bir sözlükte anahtarlar öğrenci isimleri, değerler ise notlar olabilir:

notlar = {"Ada": 85, "Bora": 90, "Ceren": 78}
print(notlar["Bora"])   # 90

Sözlüğü döngüyle gezerken hem anahtarı hem değeri almak için .items() kullanırız:

notlar = {"Ada": 85, "Bora": 90, "Ceren": 78}
for isim, not_degeri in notlar.items():
    print(isim + ": " + str(not_degeri))

Çıktı:

Ada: 85
Bora: 90
Ceren: 78

Burada not_degeri bir sayı olduğu için, metinle birleştirmeden önce str() ile metne çevirdik.

Mini uygulama

Bir sınıfın notlarını tutan küçük bir program yazalım. Program hem tek tek nota bakabilsin hem de sınıf ortalamasını hesaplasın.

notlar = {"Ada": 85, "Bora": 90, "Ceren": 78}

# Yeni bir öğrenci ekle
notlar["Deniz"] = 92

toplam = 0
for isim, not_degeri in notlar.items():
    print(isim + " notu: " + str(not_degeri))
    toplam = toplam + not_degeri

ortalama = toplam / len(notlar)
print("Sınıf ortalaması: " + str(ortalama))

Bu kodu çalıştırdığında her öğrencinin notu sırayla yazılır, sonra ortalama hesaplanır. len(notlar) sözlükteki öğrenci sayısını verdiği için toplamı ona böleriz.

Kendin dene:

Uygulama laboratuvarı: Listeler ve Sözlükler

Listeler ve Sözlükler konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada Liste nedir? ile Listeye eleman ekleme: append arasındaki ilişkiyi kullanarak çalışan kısa bir Python 3 programı, örnek girdiler ve beklenen çıktılar hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.

Görev senaryosu

Şu senaryoyu ele al: kullanıcıdan veri alıp hatalı girişi açıklayan yardımcı. Dersin ana hedefi “Listelerle sıralı veriyi, sözlüklerle anahtar-değer eşlemeyi tutmayı ve gezmeyi öğren” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.

  1. Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
  2. En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
  3. Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
  4. Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
  5. Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.

Başarı ölçütleri

“Listeler ve Sözlükler” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın kullanıcıdan veri alıp hatalı girişi açıklayan yardımcı senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Liste nedir? ve Listeye eleman ekleme: append ilişkisini daha küçük adımlara bölerek düzelt.

Sık yapılan hatalar

Index 0'dan başlar

İlk elemanı liste[1] ile almaya çalışmak sık yapılan bir hatadır. Unutma: ilk eleman liste[0]'dır.

Olmayan index'i istemek

Üç elemanlı bir listede liste[3] yoktur ve IndexError alırsın. En büyük geçerli index, uzunluğun bir eksiğidir.

Sözlükte olmayan anahtarı çağırmak

notlar["Efe"] diye ararsın ama sözlükte "Efe" yoksa KeyError alırsın. Anahtarın var olduğundan emin ol.

Liste ile sözlüğü karıştırmak

Liste sıra numarasıyla ([0]), sözlük anahtarla (["isim"]) çalışır. Köşeli parantez ikisinde de kullanılır ama içine yazdığın şey farklıdır.

Sayıyı metinle birleştirmek

print("Not: " + 90) hata verir; çünkü metinle sayı doğrudan birleştirilemez. str(90) ile önce metne çevir.

Güvenlik notu

Bu ders tamamen kendi bilgisayarında, kendi yazdığın kodu çalıştırmakla ilgilidir. İnternette bulduğun tanımadığın kodları anlamadan çalıştırma. Ayrıca örneklerde kendi ve başkalarının gerçek kişisel bilgilerini (tam ad, adres, telefon) kullanma; alıştırmalar için takma isimler yeterlidir.

Ders özeti

Kontrol soruları

  1. renkler = ["kırmızı", "yeşil", "mavi"] listesinde renkler[1] hangi değeri verir?
  2. Bir listeye sonuna eleman eklemek için hangi komutu kullanırız?
  3. len(["a", "b", "c", "d"]) kaç sonucunu verir?
  4. ogrenci = {"isim": "Ada"} sözlüğüne yaş bilgisini nasıl ekleriz?
  5. Sözlükte hem anahtarları hem değerleri döngüyle gezmek için hangi yöntemi kullanırız?

Cevaplar

  1. "yeşil". Index 0'dan başladığı için renkler[0] "kırmızı", renkler[1] "yeşil"dir.
  2. append(). Örneğin renkler.append("sarı") yeni rengi listenin sonuna ekler.
  3. 4. len() fonksiyonu listedeki eleman sayısını verir.
  4. ogrenci["yas"] = 12 yazarak. Bu satır sözlüğe yeni bir anahtar-değer çifti ekler.
  5. .items() yöntemini for anahtar, deger in sozluk.items(): biçiminde kullanırız.

Kaynak ve doğrulama notu

“Listeler ve Sözlükler” dersi için doğrulama odağı Liste nedir? ile Listeye eleman ekleme: append arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Kod örnekleri Python 3 sözdizimi esas alınarak hazırlanmıştır. Çalıştırma ortamına göre küçük farklar görülebileceği için örnekler önce güvenli bir çevrim içi editörde veya yerel geliştirme ortamında denenmelidir.

Sonraki ders

Fonksiyonlar: Tekrar eden kod bloklarına bir isim vererek kendi komutlarımızı yazmayı öğreneceğiz.

Quiz’i BaşlatPython Temelleri bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.