Liste Oluşturma, Eleman Erişimi ve Döngü ile Dolaşma
Liste, birden fazla değeri tek bir değişkende saklamamızı sağlayan
veri yapısıdır. Python'da liste köşeli parantez [] ile oluşturulur.
# Boş liste
bos_liste = []
# Sayılardan oluşan liste
sayilar = [1, 2, 5, 67, 98, 13]
# Metin listesi
isimler = ["Ali", "Veli", "Ayşe"]
# Karışık türler
karisik = [42, "Merhaba", 3.14, True]
# Listeler yazdır
print(sayilar) # [1, 2, 5, 67, 98, 13]
print(isimler) # ['Ali', 'Veli', 'Ayşe']
sayilar = [1, 2, 5, 67, 98, 13]
len() fonksiyonu listenin eleman sayısını döndürür:
sayilar = [1, 2, 5, 67, 98, 13]
# Eleman sayısı
uzunluk = len(sayilar)
print(f"Liste uzunluğu: {uzunluk}") # 6
# Boş liste kontrolü
bos = []
print(f"Boş listenin uzunluğu: {len(bos)}") # 0
# Koşulda kullanma
if len(bos) == 0:
print("Liste boş!")
sayilar = [1, 2, 5, 67, 98, 13]
# İlk eleman (indeks 0)
print(sayilar[0]) # 1
# Üçüncü eleman (indeks 2)
print(sayilar[2]) # 5
# Son eleman (indeks -1)
print(sayilar[-1]) # 13
# Sondan ikinci (indeks -2)
print(sayilar[-2]) # 98
liste[-1] → Son elemanliste[-2] → Sondan ikinciliste[-n] → Sondan n'incisayilar = [1, 2, 5, 67, 98, 13]
# 3. elemanı değiştir (indeks 2)
sayilar[2] = 100
print(sayilar) # [1, 2, 100, 67, 98, 13]
# Son elemanı değiştir
sayilar[-1] = 999
print(sayilar) # [1, 2, 100, 67, 98, 999]
Bir listedeki tüm elemanlara erişmek için döngü kullanırız. Bu, algoritmalarda en sık kullanılan işlemlerden biridir.
isimler = ["Ali", "Veli", "Ayşe", "Fatma"]
for isim in isimler:
print(f"Merhaba {isim}!")
# Çıktı:
# Merhaba Ali!
# Merhaba Veli!
# Merhaba Ayşe!
# Merhaba Fatma!
a = [1, 2, 5, 67, 98, 13]
i = 0
while i < len(a):
print(f"a[{i}] = {a[i]}")
i += 1
sayilar = [10, 20, 30, 40, 50]
for i in range(len(sayilar)):
print(f"İndeks {i}: {sayilar[i]}")
max(), min(), sum(), in gibi hazır fonksiyonları
kullanmak yerine, döngü ile kendiniz yazmanız beklenir!
a = [7, 10, 4, 44]
i = 0
toplam = 0
while i < len(a):
toplam += a[i]
i += 1
print(f"Toplam: {toplam}") # 65
# NOT: sum(a) kullanmak yerine döngü ile yazın!
a = [7, 10, 4, 44, 3, 25]
en_buyuk = a[0] # İlk elemanı başlangıç kabul et
i = 1
while i < len(a):
if a[i] > en_buyuk:
en_buyuk = a[i]
i += 1
print(f"En büyük: {en_buyuk}") # 44
# NOT: max(a) kullanmak yerine döngü ile yazın!
a = [7, 10, 4, 44, 3, 25]
en_kucuk = a[0]
i = 1
while i < len(a):
if a[i] < en_kucuk:
en_kucuk = a[i]
i += 1
print(f"En küçük: {en_kucuk}") # 3
# NOT: min(a) kullanmak yerine döngü ile yazın!
a = [1, 2, 5, 67, 98, 13]
aranan = 67
i = 0
bulundu = False
while i < len(a):
if a[i] == aranan:
print(f"{aranan} bulundu! İndeks: {i}")
bulundu = True
break
i += 1
if not bulundu:
print(f"{aranan} listede yok")
# NOT: "aranan in a" kullanmak yerine döngü ile yazın!
a = [7, 10, 4, 44]
i = 0
toplam = 0
while i < len(a):
toplam += a[i]
i += 1
ortalama = toplam / len(a)
print(f"Ortalama: {ortalama}") # 16.25
# Pozitif sayıları say
a = [3, -2, 7, 0, -5, 8, 1]
i = 0
pozitif_sayisi = 0
while i < len(a):
if a[i] > 0:
pozitif_sayisi += 1
i += 1
print(f"Pozitif sayı adedi: {pozitif_sayisi}") # 4
Python'da in operatörü ile liste içinde arama yapılabilir.
Ancak algoritma dersinde kendi kodunuzu yazmanız beklenir.
a = [1, 2, 5, 67, 98, 13]
aranan = 67
# Kolay yol (ama algoritmada kullanmayın!)
if aranan in a:
print("Bulundu")
else:
print("Bulunamadı")
# Sonucu doğrudan yazdırma
print(67 in a) # True
print(100 in a) # False
in operatörünü kullanmak kabul edilmez!
sayilar = [1, 2, 3]
sayilar.append(4)
print(sayilar) # [1, 2, 3, 4]
sayilar.append(5)
print(sayilar) # [1, 2, 3, 4, 5]
n = int(input("Kaç sayı gireceksiniz? "))
liste = []
for i in range(n):
sayi = int(input(f"{i+1}. sayı: "))
liste.append(sayi)
print(f"Oluşturulan liste: {liste}")
sayilar = [3, 8, 15, 22, 7, 10, 31, 44]
ciftler = []
i = 0
while i < len(sayilar):
if sayilar[i] % 2 == 0:
ciftler.append(sayilar[i])
i += 1
print(f"Çift sayılar: {ciftler}") # [8, 22, 10, 44]
orijinal = [1, 2, 3, 4, 5]
ters = []
i = len(orijinal) - 1
while i >= 0:
ters.append(orijinal[i])
i -= 1
print(f"Ters liste: {ters}") # [5, 4, 3, 2, 1]
a = [1, 2, 3, 4]
b = [10, 20, 30, 40]
toplam = []
i = 0
while i < len(a):
toplam.append(a[i] + b[i])
i += 1
print(f"Toplam: {toplam}") # [11, 22, 33, 44]
a = [5, 2, 8, 1, 9, 3]
min_indeks = 0
max_indeks = 0
i = 1
while i < len(a):
if a[i] < a[min_indeks]:
min_indeks = i
if a[i] > a[max_indeks]:
max_indeks = i
i += 1
print(f"Min değer: {a[min_indeks]} (indeks: {min_indeks})")
print(f"Max değer: {a[max_indeks]} (indeks: {max_indeks})")
liste = [1, 2, 3]len(liste)liste[indeks] (0'dan başlar)max(), min(), sum() yerine döngü yazınin operatörü yerine Linear Search kodlayınsorted() yerine sıralama algoritması yazın