[Bölüm 12] Python Dilinde Liste (list) Veri Yapıları

Merhaba arkadaşlar bugün bu yazımda sizlere daha öncede ufak bir girişini yaptığım temel veri tiplerinden liste (list) veri yapılarından bahsedeceğim.

Liste diye tanımladığımız veri tipleri sıralı yapılar olup iki köşeli parantez arasında tanımlanırlar. Karakter dizilerinde olduğu gibi listelerin de indisleri 0’dan başlar.  Karakter dizilerinden farklı olarak listeler dilimlenebilir ve elemanları sonradan değiştirilebilir.

list e l e k t r i k v a d i s i
indis 0 1 2 3 4 5 6 7 8 9 10 11 12 13
-indis -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

ÖRNEK:

deneme = ['elektrik','mühendislik','yıldız','teknik','üniversite','fenerbahçe','1907','1911','1920','1923',]
x = len(deneme)
a = deneme[0]
b = deneme[1]
c = deneme[2]
d = deneme[3]
e = deneme[4]
f = deneme[5]
g = deneme[6]
h = deneme[7]
ı = deneme[8]
i = deneme[9]
print('deneme adlı listenin eleman sayısı: ',x)
print('deneme adlı listenin sırasıyla elemanları: ',a,',',b,',',c,',',d,',',e,',',f,',',g,',',h,',',ı,',',i)

Çıktı:

deneme adlı listenin eleman sayısı:  10
deneme adlı listenin sırasıyla elemanları:  elektrik , mühendislik , yıldız , teknik , üniversite , fenerbahçe , 1907 , 1911 , 1920 , 1923

Aşağıdaki örnekte olduğu gibi listenin içinde bir başka listede olabilir.

liste = [a,b,c,d,[1,2,3,4,5,6,7]]
print(liste[4])
print(liste[4][0])

Çıktı:

[1, 2, 3, 4, 5, 6, 7]
1

Listeleri Dilimleme

Aşağıdaki metod ile listeleri rahatlıkla dilimleyebiliriz.

*ilk,son = [1,2,3,4,5,6,7]
print(ilk)
print(son)

Çıktı:

[1, 2, 3, 4, 5, 6]
7
ilk,*orta,son = ['a','b','c','d','e','f','g','h']
print(ilk)
print(orta)
print(son)

Çıktı:

a
['b', 'c', 'd', 'e', 'f', 'g']
h

Listeleme Metodları

Şimdi aşağıda işlevlerini açıklayacağım kodları dir(list) komutuyla elde edebilirsiniz. Ben sadece bu kodların birazını açıklayacağım.

L.append(a) a elemanını L listesinin sonuna ekler.
L.clear() L listesinin bütün elemanlarını siler ve L listesini boş bir liste yapar.
L.copy() L listesinin bir kopyasını oluşturur.
L.count(a) L listesinin içerisinde kaç tane a elemanı olduğunu sayar.
L.extend(b) b nesnesinin elemanlarını L listesinin sonuna ekler.
L += b b nesnesinin elemanlarını L listesine ekler. Lextend(b) ile aynı işlevi gerçekleştirir.
L.index(b,ilk,son) b nesnesinin belirtilen ilk-son aralığında L listesindeki konumunu bulur.
L.insert(i,a) a elemanını L listesinin i. pozisyonuna yerleştirir.
L.pop() L listesinin en son elemanını çıktı olarak verir o elemanı siler.
L.pop(i) L listesinin i. pozisyonundaki elemanı siler.
L.remove(a) L listesinde 0.indisten son indise kadar olan elemanlardan ilk a elemanını siler.
L.reserve() L listesini tersten başa sıralar. Sıralamayı tersine çevirir.
L.sort() L listesinin içeriğini sıralar. Aynı elemanları peş peşe çıktı olarak verir. Önemli olan eleman çeşididir.

Şimdi yukarıda paylaştığım Python kod ve komutlarının, liste metodlarının nasıl çalıştığını aşağıda vereceğim örnek kodlarla açıklayacağım.

ÖRNEK:

rakamlar = [0,1,2,3,4,5,6,7,8]
rakamlar.append(9)
rakamlar

Çıktı:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Örnek:

sayılar = [0,1,2,3,4,5]
sayılar.append([6,7,8,9])
sayılar

Çıktı:

[0, 1, 2, 3, 4, 5, [6, 7, 8, 9]]

Örnek:

kalın_sesli_harfler = ['a','ı','o','u']
ince_sesli_harfler = ['e','i','ö','ü']
kalın_sesli_harfler.append(ince_sesli_harfler)
print(kalın_sesli_harfler)

Çıktı:

['a', 'ı', 'o', 'u', ['e', 'i', 'ö', 'ü']]

Örnek:

site_ismi_harfler = ['e','l','e','k','t','r','i','k','v','a','d','i','s','i']
print(site_ismi_harfler.count('e'))
print(site_ismi_harfler.count('i'))

Çıktı:

2
3

Örnek:

yildiz = [1,9,1,1]
yildiz.clear()
yildiz

Çıktı:

[ ]

Örnek:

bilim_adamları = ['tesla','edison']
elektrik = ['gerilim','akım','empedans']
bilim_adamları.extend(elektrik)
print(bilim_adamları)

Çıktı:

['tesla', 'edison', 'gerilim', 'akım', 'empedans']

Örnek:

a=['s','d','a']
a.sort()
a
print(a)

Çıktı:

['a', 'd', 's']

Örnek:

elektrik,vadisi,hamit,can = [1453,1923,1911,1998]
print(elektrik)
print(vadisi)
print(hamit)
print(can)

Çıktı:

1453
1923
1911
1998

Örnek:

örnek_liste=[0,1,2,3,4,5,6,7]
örnek_liste.insert(5,'elektrik')
print(örnek_liste)

Çıktı:

[0, 1, 2, 3, 4, 'elektrik', 5, 6, 7]

Örnek:

mühendislik=['elektrik','makine','inşaat','kimya']
print(mühendislik.pop())
print(mühendislik)

Çıktı:

kimya
['elektrik', 'makine', 'inşaat']

Örnek:

liste = [1,2,2,3,3,3,4,4,4,4]
liste.remove(3) #bulduğu ilk 3 elemanını siler
liste

Çıktı:

[1, 2, 2, 3, 3, 4, 4, 4, 4]

Örnek:

a = [1,2,3,4,5,6,7]
print(a)
a.reverse()
a[0]

Çıktı:

[1, 2, 3, 4, 5, 6, 7]
7

Şimdi aşağıda listeler üzerinde uygulamış olduğumuz bazı kodların tek satırda nasıl yazıldığını göstereceğim. Bu sayede hem kod kalabalığından kurtulmuş olacağız hem de bir nebze olsun kodumuzun daha hızlı çalışmasını sağlayacağız.

Örnek:

#aşağıdaki kod uzun kodumuz
küb = list()
for eleman in range(10):
    küb.append(eleman**3)
print(küb)

#aşağıdaki kod yukarıdaki kodun kısaltılmış halidir
küb = [a**3 for a in range(10)]
print(küb)

Çıktı:

[0, 1, 8, 27, 64, 125, 216, 343, 512, 729]
[0, 1, 8, 27, 64, 125, 216, 343, 512, 729]

Örnek:

#aşağıdaki kod uzun kodumuz
tek_kübler = list()
for eleman in range(10):
    if eleman % 2 == 1:
        tek_kübler.append(eleman**3)
print(tek_kübler)

#aşağıdaki kod yukarıdaki kodun kısaltılmış halidir
tek_kübler = [x**3 for x in range(10) if x % 2 == 1]
print(tek_kübler)

Çıktı:

[1, 27, 125, 343, 729]
[1, 27, 125, 343, 729]

Örnek:

#aşağıdaki kod uzun kodumuz
ikinin_kuvvetleri = list()
for sayı in range(15):
    ikinin_kuvvetleri.append(2**sayı)
print(ikinin_kuvvetleri)

#aşağıdaki kod yukarıdaki kodun kısaltılmış halidir
ikinin_kuvvetleri = [2**sayı for sayı in range(15)]
print(ikinin_kuvvetleri)

Çıktı:

[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384]
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384]

Örnek:

#aşağıdaki kod uzun kodumuz
liste1 = ['elektrik','makine']
liste2 = ['mühendisliği','teknikerliği']
meslekler = list()
for kelime1 in liste1:
    for kelime2 in liste2:
        meslekler.append(kelime1 + " " + kelime2)
print(meslekler)

#aşağıdaki kod yukarıdaki kodun kısaltılmış halidir
liste1 = ['elektrik','makine']
liste2 = ['mühendisliği','teknikerliği']
meslekler = [kelime1 + " " + kelime2 for kelime1 in liste1 for kelime2 in liste2]
print(meslekler)

Çıktı:

['elektrik mühendisliği', 'elektrik teknikerliği', 'makine mühendisliği', 'makine teknikerliği']
['elektrik mühendisliği', 'elektrik teknikerliği', 'makine mühendisliği', 'makine teknikerliği']