Listeler
Liste, birden fazla değerin yer aldığı bir yapıdır. Listede yer alan verilerin aynı veri türünden olması gerekli değildir. Elemanlarda değişiklik yapılabilir.
Liste oluşturmak için köşeli parantezler ([ ]) veya list() fonksiyonu kullanılır.
1
2
3
4
5
liste-adı = ["deger01", "deger02", "deger03"] # [ ] ile liste oluşturma
liste-adı = list(("deger01", "deger02", "deger03")) # list() ile liste oluşturma
Listeler aşağıda gösterilen kurallara uygun olarak oluşturulur:
- Liste, aynı veya farklı veri türünden elemanlardan oluşabilir.
- Liste elemanları sıralıdır. Eleman tanımlanma sırası değişmez. Yeni elemanlar listenin sonuna eklenir.
- Liste elemanları değiştirilebilir, silinebilir ve listeye yeni eleman eklenebilir.
- Liste elemanları birbirinin aynı olabilir.
- Liste elemanlarına 0’dan başlamak üzere endeksleme ile erişim sağlanır.
Şimdi, liste oluşturulmasını bir örnek üzerinde incelemeye çalışalım:
Örnek
1
2
3
4
5
6
7
8
9
10
11
12
13
# [ ] ile liste oluşturma
liste1 = ["Bilgisayar", "Programlama", "Yazılım"]
liste2 = [21, 35, 54, 82, 117]
# list() ile liste oluşturma
liste3 = [7, 15, 24, 43]
# Listeleri yazdırma
print(liste1)
print(liste2)
print(liste3)
Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:
1
2
3
4
5
['Bilgisayar', 'Programlama', 'Yazılım']
[21, 35, 54, 82, 117]
[7, 15, 24, 43, 57]
Liste elemanlarına erişim
Liste elemanlarına birer birer erişmek için, [ ] işaretleri ile birlikte 0’dan başlayan endeks yöntemini kullanabiliriz. Bir sıra dahilindeki birden fazla liste elemanına erişim sağlamak için, [ ] işaretleri ile : işaretini kullanabiliriz.
Şimdi, liste elemanlarına erişim sağlama işlemini bir örnek üzerinde incelemeye çalışalım:
Örnek
1
2
3
4
5
6
7
8
9
10
11
12
liste = ["aaa", "bbb", "ccc", "ddd", "eee"]
print(liste[0]) # Listenin ilk elemanını yazdırma
print(liste[1]) # Listenin ikinci elemanını yazdırma
print(liste[-1]) # Listenin son elemanını yazdırma
print(liste[-2]) # Listenin sondan ikinci elemanını yazdırma
print(liste[:3]) # Listenin 1.elemanından 4.elemanına kadar yazdırma
print(liste[2:]) # Listenin 3.elemanından itibaren yazdırma
print(liste[1:4]) # Listenin 2.elemanından 5.elemanına kadar yazdırma
Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:
1
2
3
4
5
6
7
8
9
aaa
bbb
eee
ddd
['aaa', 'bbb', 'ccc']
['ccc', 'ddd', 'eee']
['bbb', 'ccc', 'ddd']
Liste elemanlarında değişiklik yapma
Liste elemanlarını değiştirebilir ve listeye yeni eleman ekleyebiliriz. Liste elemanlarında bu işlemleri yapmak için, [ ] işaretleri ile birlikte 0’dan başlayan endeks yöntemini, bir sıra dahilindeki birden fazla liste elemanına erişim sağlamak için, [ ] işaretleri ile : işaretini veya append(), insert() ve extend() fonksiyonlarını kullanabiliriz. Bu fonksiyonların genel yapısı aşağıda gösterilmektedir:
1
2
3
4
5
6
7
liste-adı.append(eleman-değeri) # Listenin sonuna bir eleman ekler.
liste-adı.insert(endeks, eleman-değeri) # Listede belirli bir endekse bir eleman ekler.
liste-adı.extend(eklenecek-liste) # Bir listenin sonuna diğer bir listeyi ekler.
Şimdi, liste elemanlarını değiştirme ve listeye yeni eleman ekleme işlemlerinin [ ] ve : işaretleri ile yapılmasını bir örnek üzerinde incelemeye çalışalım:
Örnek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
liste = ["aaa", "bbb", "ccc", "ddd", "eee"]
liste[2] = "Program" # 3.elemanı değiştirme
print(liste) # Liste elemanlarını yazdırma
liste[0:2] = [21, 35.17] # İlk iki elemanı değiştirme
print(liste) # Liste elemanlarını yazdırma
liste[2:3] = ["kkk", "mmm"] # Listenin 3.elemanı yerine 2 eleman yerleştirme
print(liste) # Liste elemanlarını yazdırma
liste[4:] = ["ppp"] # Listenin son iki elmanı yerine tek bir eleman ekleme
print(liste) # Liste elemanlarını yazdırma
Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:
1
2
3
4
5
6
['aaa', 'bbb', 'Program', 'ddd', 'eee']
[21, 35.17, 'Program', 'ddd', 'eee']
[21, 35.17, 'kkk', 'mmm', 'ddd', 'eee']
[21, 35.17, 'kkk', 'mmm', 'ppp']
Şimdi, listeye yeni eleman ekleme işlemlerinin append(), insert() ve extend() fonksiyonları ile yapılmasını bir örnek üzerinde incelemeye çalışalım:
Örnek
1
2
3
4
5
6
7
8
9
10
11
12
13
liste = ["aaa", "bbb", "ccc", "ddd", "eee"]
liste.append("kkk") # Listenin sonuna eleman ekleme
print(liste) # Liste elemanlarını yazdırma
liste.insert(2, "ppp") # Listenin 3.elemanı olarak eleman ekleme
print(liste) # Liste elemanlarını yazdırma
liste2 = ["ttt", "uuu", "vvv"]
liste.extend(liste2) # liste2 elemanlarını list sonuna ekleme
print(liste) # Liste elemanlarını yazdırma
Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:
1
2
3
4
5
['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'kkk']
['aaa', 'bbb', 'ppp', 'ccc', 'ddd', 'eee', 'kkk']
['aaa', 'bbb', 'ppp', 'ccc', 'ddd', 'eee', 'kkk', 'ttt', 'uuu', 'vvv']
Liste elemanlarını silme
Bir listede yer alan elemanları silmek için remove() ve pop() fonksiyonları ile del anahtar kelimesini, liste içeriğini komple silmek için clear() fonksiyonunu ve listeyi tamamen silmek için del anahtar kelimesini kullanabiliriz. Fonksiyonların ve anahtar kelimenin genel yapısı aşağıda gösterilmektedir:
1
2
3
4
5
6
7
8
9
10
liste-adı.pop(endeks) # Endeks sıra numarasındaki eleman silinir.
liste-adı.remove(eleman-değeri) # Değeri verilen eleman listeden silinir.
liste-adı.clear() # Liste içeriği komple silinir.
del liste-adı # Listeyi komple siler.
del liste-adı[endeks] # Endeks ile gösterilen elemanı siler.
Şimdi, liste elemanlarını değiştirme ve listeye yeni eleman ekleme işlemlerinin [ ] ve : işaretleri ile yapılmasını bir örnek üzerinde incelemeye çalışalım:
Örnek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
liste = ["aaa", "bbb", "ccc", "ddd", "eee", "fff"]
liste.remove("ccc") # "ccc" değeri içeren elemanı listeden silme
print(liste) # Liste elemanlarını yazdırma
liste.pop(2) # 3.elemanı silme
print(liste) # Liste elemanlarını yazdırma
del liste[1] # Listenin 2.elemanını silme
print(liste) # Liste elemanlarını yazdırma
liste.clear() # Liste içeriğini silme
print(liste) # Liste elemanlarını yazdırma
del liste # Listeyi tamamen silme
Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:
1
2
3
4
5
6
['aaa', 'bbb', 'ddd', 'eee', 'fff']
['aaa', 'bbb', 'eee', 'fff']
['aaa', 'eee', 'fff']
[]
Liste elemanlarının tamamına sırayla erişim
Bir listede yer alan elemanlara sıra ile erişim sağlamak için döngüleri kullanabiliriz.
Şimdi, liste elemanlarına sıra ile erişim sağlamak için döngü kullanılmasını bir örnek üzerinde incelemeye çalışalım:
Örnek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
liste = ["aaa", "bbb", "ccc", "ddd", "eee"]
print(liste) # Listeyi tek komutla yazdırma
# Liste elemanlarını for döngüsüyle tek tek yazdırma
for deg in liste:
print(deg, end=' ')
print() # Satır aralığı verme
# Liste elemanlarını for döngüsü ve endeksleme yöntemiyle yazdırma
len = len(liste)
for deg in range(len):
print(liste[deg], end=' ')
print() # Satır aralığı verme
# Liste elemanlarını while döngüsü ve endeksleme yöntemiyle yazdırma
deg = 0
while deg < len:
print(liste[deg], end=' ')
deg += 1
Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:
1
2
3
4
5
6
['aaa', 'bbb', 'ccc', 'ddd', 'eee']
aaa bbb ccc ddd eee
aaa bbb ccc ddd eee
aaa bbb ccc ddd eee
Bir Listeden yeni bir liste oluşturma
Bir listede yeni bir liste oluşturmak için, for döngüsü ve kapsam yöntemi ile aşağıda genel yapısı gösterilen copy() ve list() fonksiyonlarını kullanabiliriz.
1
2
3
4
5
yeni-liste-adı = liste-adı.copy() # Bir listenin tamamı diğer bir listeye aktarılır.
yeni-liste-adı = list(liste-adı) # # Bir listenin tamamı diğer bir listeye aktarılır.
- for döngüsü: Bir liste içeriğinin tamamı veya koşula bağlı olarak bir kısmı aktarılarak yeni bir liste oluşturulur.
- Kapsam yöntemi: Bir liste içeriğinin tamamı veya koşula bağlı olarak bir kısmı aktarılarak yeni bir liste oluşturulur.
- copy() fonksiyonu: Bir liste elemanlarının tamamı kopya edilerek yeni bir liste oluşturulur.
- list() fonksiyonu: Bir liste elemanlarının tamamından yeni bir liste oluşturulur.
Kapsam yöntemi ile bir listeden yeni bir liste oluşturmak için kullanılan genel yapı aşağıda gösterilmektedir. Bu yapıda, if koşulunun tanımlanması isteğe bağlıdır.
1
2
3
yeni-liste-adı = [ifade for liste-eleman-değişkeni in önceki-liste-adı if koşul]
Şimdi, bir listeden yeni bir liste oluşturma işlemlerini bir örnek üzerinde incelemeye çalışalım:
Örnek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
liste1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
liste2 = []
# liste1 içeriğinin tamamını list2 içine aktarma
for deg in liste1:
liste2.append(deg)
print(liste2)
liste2.clear() # liste2 elemanlarını silme
# liste1 içeriğinden 5'den büyük olanları list2 içine aktarma
for deg in liste1:
if deg > 5:
liste2.append(deg)
print(liste2)
# Kapsam yöntemiyle liste oluşturma
liste2 = [deg for deg in liste1]
print(liste2)
# Kapsam yöntemiyle koşul tanımlayarak liste oluşturma
liste2 = [deg for deg in liste1 if deg > 5]
print(liste2)
# copy() fonksiyonu ile liste oluşturma
liste2 = liste1.copy()
print(liste2)
# list() fonksiyonu ile liste oluşturma
liste2 = list(liste1)
print(liste2)
Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:
1
2
3
4
5
6
7
8
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Listeleri birleştirme
İki listeyi birleştirmek için, + işlemcisi, for döngüsü veya aşağıda genel yapısı verilen extend() fonksiyonunu kullanabiliriz.
1
2
3
ekleme-yapılacak-liste-adı.extend(eklenecek-liste-adı) # Bir listenin tamamı diğer bir listeye eklenir.
Şimdi, iki listeyi birleştirme işlemlerini bir örnek üzerinde incelemeye çalışalım:
Örnek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
liste1 = [1, 2, 3, 4, 5]
liste2 = [6, 7, 8, 9, 10]
# + işlemcisi ile listeleri birleştirme
liste3 = liste1 + liste2
print(liste3)
# for döngüsü ile listeleri birleştirme
for deg in liste2:
liste1.append(deg)
print(liste1)
# extend() fonksiyonu ile listeleri birleştirme
liste1.extend(liste2)
print(liste1)
Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:
1
2
3
4
5
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 6, 7, 8, 9, 10]
Listeleri sıralama
Bir listeyi sıralamak için, aşağıda genel yapısı verilen sort() fonksiyonunu kullanabiliriz.
1
2
3
liste-adı.sort(reverse=True|False, key=sıralama-fonksiyonu)
Her iki parametre isteğe bağlı olarak tanımlanır. reverse parametresinin ön tanımlı değeri False olup artan değerde sıralama yapar. True değeri verildiğinde ise, azalan değerde sıralama yapar. key parametresi sıralama fonksiyonu tanımlar.
Şimdi, iki listeyi birleştirme işlemlerini bir örnek üzerinde incelemeye çalışalım:
Örnek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
liste1 = [4, 2, 5, 1, 3]
liste2 = ["ddd", "aaa", "eee", "ccc", "bbb"]
# Sayılardan oluşan listeyi sıralama
liste1.sort()
print(liste1)
# Harflerden oluşan listeyi sıralama
liste2.sort()
print(liste2)
# Sayılardan oluşan listeyi tersten sıralama
liste1.sort(reverse = True)
print(liste1)
# Harflerden oluşan listeyi tersten sıralama
liste2.sort(reverse = True)
print(liste2)
Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:
1
2
3
4
5
6
[1, 2, 3, 4, 5]
['aaa', 'bbb', 'ccc', 'ddd', 'eee']
[5, 4, 3, 2, 1]
['eee', 'ddd', 'ccc', 'bbb', 'aaa']
Listeyi tersine çevirme
Bir listedeki elemanları tersine çevirmek için aşağıda genel yapısı verilen reverse() fonksiyonunu kullanabiliriz.
1
2
3
liste-adı.reverse()
Şimdi, bir listedeki elemanları tersine çevirme işlemlerini bir örnek üzerinde incelemeye çalışalım:
Örnek
1
2
3
4
5
6
7
8
9
10
11
12
liste1 = [1, 2, 3, 4, 5]
liste2 = ["aaa", "bbb", "ccc", "ddd", "eee"]
# Sayılardan oluşan listeyi reverse() fonksiyonu ile tersine çevirme
liste1.reverse()
print(liste1)
# Harflerden oluşan listeyi reverse() fonksiyonu tersine çevirme
liste2.reverse()
print(liste2)
Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:
1
2
3
4
5
6
[1, 2, 3, 4, 5]
['aaa', 'bbb', 'ccc', 'ddd', 'eee']
[5, 4, 3, 2, 1]
['eee', 'ddd', 'ccc', 'bbb', 'aaa']
Listedeki bir eleman değerinin endeksini ve sayısını alma
Bir listedeki eleman değerinin endeksini almak için index() fonksiyonunu ve kaç adet olduğunu belirlemek için count() fonksiyonunu kullanabiliriz. Bu fonksiyonların genel yapısı aşağıda gösterilmektedir:
1
2
3
4
5
liste-adı.index(eleman-değeri)
liste-adı.count(eleman-değeri)
Şimdi, bir listedeki eleman değerinin endeksini almak ve kaç adet olduğunu belirlemek için yapılan işlemleri bir örnek üzerinde incelemeye çalışalım:
Örnek
1
2
3
4
5
6
7
8
9
10
liste = [1, "aaa", 2, "bbb", 3, "ccc", 4, "ddd", 3]
# Elemanların endeksini alma
print(liste.index("bbb"))
print(liste.index(4))
# Listede kaç adet 3 değeri olduğunu belirleme
print(liste.count(3))
Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:
1
2
3
4
5
3
6
2