İçeriğe geç
Educora
Orta17 dk6 / 42

Listeler

Birçok değeri tek bir listede sakla: elemanlara eriş, ekle, sil, sırala ve liste üzerinde döngü kur.

Kendini test et
Bu derste öğreneceklerin
  • Liste oluşturmak ve elemanlarına indeksle erişmek
  • append, insert, remove, pop ve sort metotlarını kullanmak
  • Liste üzerinde döngü kurmak ve sum, min, max ile sonuç hesaplamak

Bir sınıfta 25 öğrenci var ve her birinin notunu aklında tutman gerekiyor. 25 ayrı değişken mi: grade1, grade2, grade3…? Bu hem yorucu hem de kullanışsız. Python'da bunun yerine tüm notları tek bir listede saklayabilirsin: tek bir ad altında istediğin kadar eleman.

Liste oluşturmak

Tanım
Liste (list)

Köşeli parantez [] içinde virgülle ayrılmış değerlerden oluşan sıralı bir topluluk. Elemanlar her türden olabilir ve liste oluşturulduktan sonra değiştirilebilir.

Listelerde indeksler ve dilimler karakter dizilerindeki gibi çalışır: ilk eleman [0], son eleman [-1]'dir, len() ise eleman sayısını verir.

Python
fruits = ['apple', 'pomegranate', 'fig', 'grape']
print(fruits)
print(len(fruits))
print(fruits[0], fruits[-1])
print(fruits[1:3])
print('fig' in fruits)
▸ Beklenen çıktı
['apple', 'pomegranate', 'fig', 'grape']
4
apple grape
['pomegranate', 'fig']
True

Listeyi değiştirmek

Karakter dizilerinin aksine listeler değiştirilebilir: bir elemanı indeksiyle değiştirebilir, yeni eleman ekleyebilir ya da silebilirsin. Bunun için listelerin metotları vardır:

MetotNe yapar
append(x)x'i listenin sonuna ekler
insert(i, x)x'i i konumuna yerleştirir
remove(x)x'e eşit ilk elemanı siler
pop()son elemanı siler ve onu döndürür
sort()listeyi artan sırada sıralar
count(x)x'in kaç kez geçtiğini sayar
Python
cart = ['bread', 'milk']
cart.append('cheese')
cart.insert(0, 'tea')
print(cart)

cart.remove('milk')
last = cart.pop()
print('Removed:', last)

cart[0] = 'green tea'
print(cart)
▸ Beklenen çıktı
['tea', 'bread', 'milk', 'cheese']
Removed: cheese
['green tea', 'bread']

Listeler ve döngüler

Listeler ve for döngüsü birbiri için yaratılmıştır. Hesaplamalar için hazır fonksiyonlar da vardır: sum() toplamı, min() ve max() ise en küçük ve en büyük elemanı verir. Aysel dönem boyunca aldığı notların ortalamasını hesaplıyor:

Python
grades = [5, 4, 5, 3, 4, 5]
average = sum(grades) / len(grades)
print('Grades:', grades)
print('Max:', max(grades), 'Min:', min(grades))
print(f'Average: {average:.2f}')
print('Number of fives:', grades.count(5))
▸ Beklenen çıktı
Grades: [5, 4, 5, 3, 4, 5]
Max: 5 Min: 3
Average: 4.33
Number of fives: 3

Döngü, eski bir listeden yeni bir liste oluşturmak için de kullanışlıdır: boş bir liste [] oluştur ve koşula uyan elemanları append ile ekle.

Python
scores = [45, 82, 67, 90, 38]
passed = []
for s in scores:
    if s >= 50:
        passed.append(s)
print(passed)
print(len(passed), 'of', len(scores), 'passed')
▸ Beklenen çıktı
[82, 67, 90]
3 of 5 passed

Sıralama, split ve join

sort() metodu listenin kendisini değiştirir; sorted() fonksiyonu ise yeni, sıralanmış bir liste döndürür ve eskisine dokunmaz. reverse=True azalan sıra verir.

Python
numbers = [42, 7, 19, 3]
print(sorted(numbers))
print(numbers)
numbers.sort(reverse=True)
print(numbers)
▸ Beklenen çıktı
[3, 7, 19, 42]
[42, 7, 19, 3]
[42, 19, 7, 3]
Etkileşimli
Simülasyon yükleniyor…
Sıralama nasıl çalışır? Python'un sort() metodu daha hızlı ve akıllı bir algoritma kullanır ama fikir aynıdır: elemanlar karşılaştırılır ve yer değiştirir.

Karakter dizileriyle listeler arasında iki metot köprü görevi görür: split() bir diziyi kelimelere bölüp liste döndürür, join() ise listenin elemanlarını tek bir dizide birleştirir.

Python
line = 'Baku Ganja Sumgait Lankaran'
cities = line.split()
print(cities)
print(len(cities))
print(' - '.join(cities))
▸ Beklenen çıktı
['Baku', 'Ganja', 'Sumgait', 'Lankaran']
4
Baku - Ganja - Sumgait - Lankaran
Python
a = [1, 2, 3]
b = a
b.append(4)
print(a)

c = a.copy()
c.append(5)
print(a, c)
▸ Beklenen çıktı
[1, 2, 3, 4]
[1, 2, 3, 4] [1, 2, 3, 4, 5]
Alıştırma

Listedeki en yüksek puanı, en düşük puanı ve tüm puanların toplamını her biri ayrı satırda yazdır. max(), min() ve sum() fonksiyonlarını kullan.

Alıştırma · Python
scores = [72, 95, 88, 61, 90]
# 1) the highest score
# 2) the lowest score
# 3) the sum of all scores
▸ Beklenen çıktı
95
61
406
Alıştırma

temps listesinde bir haftanın sıcaklıkları var. Döngü ve append ile 25°'nin üzerindeki sıcaklıklardan yeni bir hot listesi oluştur, onu büyükten küçüğe sırala ve yazdır. Ardından sıcak günlerin sayısını yazdır.

Alıştırma · Python
temps = [22, 31, 27, 19, 33, 25, 29]
hot = []
# 1) append every temperature above 25 to hot
# 2) sort hot from highest to lowest and print it
# 3) print how many hot days there were
▸ Beklenen çıktı
[33, 31, 29, 27]
4

Önemli noktalar

  • Liste, [] içinde sıralı ve değiştirilebilir bir değerler topluluğudur.
  • İndeksler 0'dan başlar; var olmayan bir indeks IndexError verir.
  • append, insert, remove, pop listeyi değiştirir; sum, min, max, len hesaplamalara yardım eder.
  • sort() listenin kendisini sıralar, sorted() ise yeni bir liste döndürür.
  • split() diziyi listeye, join() listeyi diziye dönüştürür.

Kendini test et

10 soru. Her doğru cevap XP kazandırır.

1 / 10
nums = [10, 20, 30] ise nums[1] nedir?