# Python Listeler

Python listeler (lists) konusunu işliyoruz.

Python koleksiyonlar (diziler) altında yer alan liste (list) veri tipimiz sıralanabilen , değiştirilebilen , indekslenebilen ve çoğul elemana izin veren bir veri tipidir. Köşeli parantezlerle [ ] oluşturulur.

liste = []

Köşeli parantezlere oluşturulan listeler, en başta elemanlarla birlikte de oluşturulabilirler.

liste = ["Ankara","İstanbul","Kayseri"]

Aynı zamanda bir liste list() fonksiyonu ile de oluşturulabilir ve constructor yöntemiyle başlangıçta elemanları ayarlanabilir.

liste = list()
liste = list(("Ankara","İstanbul","Kayseri"))

Oluşturduğumuz liste değişkenlerinin tipini kontrol edelim.

print(type(liste)) # <class 'list'>

1. Liste Elemanlarına Erişim

Python programlama dilinde elinizdeki bir listenin elemanlarına ulaşabilmek için indeksleri kullanmalısınız. Aşağıdaki örnekle indeksleri nasıl kullanacağınızı gösterelim.

liste = ["Sal","Vapur","Feribot","Korvet","Fırkateyn"]
print(liste[0]) # Sal
print(liste[1]) # Vapur
print(liste[2]) # Feribot
print(liste[3]) # Korvet
print(liste[4]) # Fırkateyn

İndeks her zaman 0 dan başlar. Yani bir listede ilk elemanın indeksi 0 dır.

2. Negatif İndeksleme

Negatif indeks kullanarak bir listeyi tersten başlayarak ele alabilirsiniz. Örnek üzerinde görelim hemen.

liste = ["Sal","Vapur","Feribot","Korvet","Fırkateyn"]
print(liste[-1]) # Fırkateyn
print(liste[-2]) # Korvet
print(liste[-3]) # Feribot
print(liste[-4]) # Vapur
print(liste[-5]) # Sal

Negatif indeks normal indeksin aksine -1 den başlar. Yani bir listede son elemanın indeksi -1 dir.

3. Bir Listeden Yeni Liste Oluşturma (İndeks)

Elimizde mevcut olan bir listeden indeks belirterek yeni bir liste oluşturabiliriz. Örneğin mevcut listenin 2.indeksinden 5.indeksine kadar ( 5 dahil değil ) olan elemanlarla yeni bir liste oluşturalım.

liste = ["a","b","c","d","e","f","g"]
yeniliste = liste[2:5]
print(yeniliste) #["c","d","e"]

Bu şekilde yeni liste oluştururken [x:y] ifadesinde x dahil, y dahil değildir. Ayrıca indeksin 0 dan başladığını unutmayınız!

4. Bir Listeden Yeni Liste Oluşturma (Negatif İndeks)

Elimizdeki listeden yeni bir liste oluştururken negatif indeksleri de kullanabiliriz.

liste = ["a","b","c","d","e","f","g"]
yeniliste = liste[-3:-1]
print(yeniliste) #["e","f"]

Bu şekilde yeni liste oluştururken [-x:-y] ifadesinde -x dahil, -y dahil değildir. Ayrıca negatif indeksin -1 den başladığını unutmayınız!

5. Liste Elemanlarını Sıralayarak Ekrana Yazdırma

Yeri geldiğinde liste elemanlarınızı ekrana sırasıyla yazdırmak, elemanlar üzerinde sırasıyla işlem yapmak isteyebilirsiniz. Bunun için for döngümüzü kullanacağız.

liste = ["a","b","c","d"]
for x in liste:
print(x)

Bu şekilde listenin tüm elemanları x değeri üzerinden otomatik olarak listelenecek ve dizi elemanı bittiğinde döngü duracaktır.

6. Liste Eleman Sayısını Öğrenme

Elinizde olan bir listenin eleman sayısını öğrenmek için len() fonksiyonunu kullanacağız.

liste = ["a","b","c","d"]
print(len(liste)) #4

Eğer özellikle bir elemanın listede kaç adet bulunduğunu öğrenmek isterseniz de count() fonksiyonunu kullanmanız gerekiyor.

liste = ["a","b","c","c","d","c"]
sayac = liste.count("c")
print(sayac) #3

7. Liste Elemanının Değerini Değiştirme

Listeler ile çalışırken listede mevcut olan bir elemanın değerini rahatlıkla değiştirebilirsiniz. Bunun için elemanın indeks değerini bilmeniz yeterlidir.

meyveler = ["kivi","çilek","muz","pırasa"]
meyveler[3] = "armut"
print(meyveler) # ["kivi","çilek","muz","armut"]

8. Listeye Yeni Eleman Ekleme

Listeler ile çalışırken listenin sonuna rahatlıkla yeni bir eleman ekleyebilirsiniz. Bunun için append() fonksiyonunu kullanacağız.

meyveler = ["kivi","çilek"]
meyveler.append("muz")
print(meyveler) # ["kivi","çilek","muz"]

Eğer listenin sonuna değilde belirlediğiniz indeks numarasına eleman eklemek istiyorsanız insert() fonksiyonunu kullanmalısınız.

meyveler = ["kivi","çilek"]
meyveler.insert(1,"muz")
print(meyveler) # ["kivi","muz","çilek"]

9. Listeden Bir Eleman Çıkarma

Listenizden bir eleman çıkarmak istiyorsanız bunun dört yöntemi vardır. İlki listenin en sonundaki elemanı listeden atmaktır ve bunun için pop() fonksiyonunu kullanmalısınız.

meyveler = ["kivi","çilek","muz","armut"]
meyveler.pop()
print(meyveler) # ["kivi","çilek","muz"]

İkinci yöntem çıkarmak istediğiniz elemanı belirterek remove() fonksiyonunu kullanmaktır.

meyveler = ["kivi","çilek","muz","armut"]
meyveler.remove("çilek")
print(meyveler) # ["kivi","muz","armut"]

Üçüncü yöntem çıkarmak istediğiniz elemanın indeksini belirterek del terimini kullanmaktır.

meyveler = ["kivi","çilek","muz","armut"]
del meyveler[0]
print(meyveler) # ["çilek","muz","armut"]

Son ve en sert yöntemde tüm listeyi temizlemektir. Listedeki tüm elemanları çıkarıp boş bir liste elde etmek için clear() fonksiyonunu kullanabilirsiniz.

meyveler = ["kivi","çilek","muz","armut"]
meyveler.clear()
print(meyveler) # []

10. Liste Kopyalamak ve Çoğaltmak

Elimizde olan bir listeyi kopyalayarak çoğaltmak istiyorsak copy() fonksiyonunu kullanabiliriz.

liste = ["a","b","c","d"]
yeniliste = liste.copy()
print(yeniliste) # ["a","b","c","d"]

Liste kopyalama için kullanılan diğer bir yöntem de yeni bir liste oluşturulurken kopyalanacak listeyi belirtmektir.

liste = ["a","b","c","d"]
yeniliste = list(liste)
print(yeniliste) # ["a","b","c","d"]

11. İki Farklı Listeyi Birleştirmek

Birbirinden farklı veya aynı iki listeyi birleştirmek için + operatörünü kullanabiliriz.

liste1 = ["A","B","C"] liste2 = ["D","E"]
liste3 = liste1 + liste2
print(liste3) # ["A","B","C","D","E"]

Şimdi ise sırf bu liste birleştirme işlemi için oluşturulmuş extend() fonksiyonunu kullanalım.

liste1 = ["A","B","C"] liste2 = ["D","E"]
liste1.extend(liste2)
print(liste1) # ["A","B","C","D","E"]

Kolay yöntemleri öğrendikten sonra şimdi de biraz daha uzun yöntemini görelim.

liste1 = ["A","B","C"] liste2 = ["D","E"]
for x in liste2: liste1.append(x)
print(liste1) # ["A","B","C","D","E"]

12. Liste Elemanlarını Sıralamak

Liste elemanlarınızı küçükten büyüğe veya büyükten küçüğe sıralamak istediğiniz zaman sort() fonksiyonunu kullanabilirsiniz.

liste = [14,36,2,95,43,0,66]
liste.sort()
print(liste) # [0, 2, 14, 36, 43, 66, 95]

Tam tersi yani büyükten küçüğe sıralamak için reverse=True terimini kullanmalısınız.

liste = [14,36,2,95,43,0,66]
liste.sort(reverse=True)
print(liste) # [95, 66, 43, 36, 14, 2, 0]

13. Bir Elemanın İndeksini Bulmak

Elimizdeki listeden bir elemanının listedeki indeksini bulmak için index() fonksiyonunu kullanabilirsiniz.

liste = [14,36,2,95,43,0,66]
print(liste.index(95)) # 3

14. Bir Elemanın Varlığını Kontrol Etme

Listede bir elemanın var olup olmadığını kontrol etmek için in terimini kullanabiliriz.

liste = ["A","B","C","D","E"]
if "C" in liste:
print("Evet var!")
else:
print("Hayır yok!")
# Evet var!