python dersleri

Python Liste ve Listenin Metotları

Merhaba Arkadaşlar,
Mobilhanem.com da Python Dersleri serisinin bu dersinde Listeleri ve Listenin Metotlarını işleyeceğiz umarım sizler için faydalı olur.
Daha önceki derslerde Python da Veri Türleri dersinde Liste veri türünün ne olduğunu ve nasıl kullanıldığına değinmiştik eğer o yazıyı okumadıysanız buradan bakmanıza fayda var.

Listeler

Kısaca üstünden geçersek Listelerin birden fazla veri türünü bir arada bulun durabildiğini köşeli parantez ile gösterildiğini ve mutable (değiştirilebilir) olduğunu söylemiştik. Şimdi Listeleri hemen bir örnekle gösterelim.

liste =[2,"Python",5.4,[5,3],("Java",5,'a')]

yukarıda gördüğünüz gibi liste adında bir Liste oluşturduk.
Peki listenin elamanlarına nasıl ulaşabiliriz diye soracak olursanız hemen onu da gösterelim

Listelere Elemanlarına Ulaşma

liste[2]
5.4

gördüğünüz gibi çok basit hemen başka bir örnek daha gösterelim.

liste[4]
('Java', 5, 'a')

Gördüğünüz gibi 4. İndeksteki elamanımız bir tuple(demet) şimdi kafanıza şöyle bir soru takılmıştır listenin elamanlarına bu şekilde ulaşabildiğimizi gördük peki 4. Elamanın yani tuple(demet) elamanlarına nasıl ulaşırım.
Hemen onu da gösterelim;

liste[4][0]
Java

Çıktı; tuple(demet) sıfırıncı indisi olan “java” karakter dizisi olacaktır.
Peki birden fazla elamana nasıl ulaşabilirim diye soracak olursanız hemen onu da gösterelim.

Liste[başlangıç,bitiş,artış miktarı]

liste[0:2]
[2, 'Python']

Fark ettiyseniz elamanları indeksleri birer artışla aldı default olarak ve sıfır ve bir  elamanlarını tek aldı 2’inci elamanı almadı sebebi ise 2’inci elamanı dahil etmiyor.

Başka örnekler gösterelim

liste[0:5:2]
[2, 5.4, ('Java', 5, 'a')]

Veya tersten alalım bu sefer;

liste[5:0:-2]
[('Java', 5, 'a'), 5.4]

Aynı şekilde sizde farklı örneklerle listenin farklı elamanlarına farklı şekilde ulaşabilirsiniz.

Listenin ne olduğunu, nasıl kullanıldığını ve Listenin elamanlarına nasıl ulaşacağımızı öğrendiğimize göre şimdi Listenin Metotlarına geçelim.

Liste Metotları

Listenin Metotlarına geçmeden önce Metot kavramına biraz değinelim Metot bir şey üstünde; Ekleme, çıkarma, değiştirme vs. gibi işlemler yapmak demektir. O zaman Listenin Metotları nelerdir hemen bakalım. Daha önceki derslerde dir() fonksiyonunu görmüştük biz bu fonksiyon sayesinde bütün metotları görebiliyorduk. Hemen gösterelim;

dir(list) 

['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__',
 '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', 
'__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__',
 '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', 
'__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__',
 '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index',
 'insert', 'pop', 'remove', 'reverse', 'sort']

Şeklinde bir çıktı aldık __xxx__ şeklinde olan metotlar özel metotlar olduğu için şimdilik onları işlemeyeceğiz biz bu yazıda

['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert',
 'pop', 'remove', 'reverse', 'sort']

Metotlarını işleyeceğiz;

Append Metodu

Listeye yeni eleman ekleme işlemini yarayan metot dur. Bu metot ile Listeye sadece bir elaman ekleyebiliyoruz ve Listenin sonuna tek ekleyebiliyoruz elemanı.

Kullanımı ise şu şekildedir;

meyveler =["elma","armut","kiraz"]

şeklinde bir listemiz var;

meyveler.append("karpuz")

Listenin yeni hali şu şekilde olacaktır;

['elma', 'armut', 'kiraz', 'karpuz']

Insert Metodu

Append metodu ile lisenin sadece sonuna elaman ekleye biliyorduk ama insert metodu ile listenin istediğiniz indeksine eleman ekle bilirsiniz kullanımı ise şu şekildedir;

meyveler.insert(2,"üzüm")

listenin yeni hali şu şekilde yani “üzüm” elamanı lisenin ikinci indeksine eklendi.

['elma', 'armut', 'Üzüm', 'kiraz', 'karpuz']

Extend Metodu

Türkçedeki anlamı “genişletmek” olan bu metot Listeleri genişletme işlevini görür hemen bir örnekle gösterelim;
İlk önce ikinci bir liste oluşturalım;

meyveler =["elma","armut","kiraz","karpuz","Üzüm"]
meyveler2 =["portakal","armut"]
meyveler.extend(meyveler2)

print(meyveler)

['elma', 'armut', 'kiraz', 'karpuz', 'Üzüm', 'portakal', 'armut']

gördüğünüz ikinci listede ki elemanları birinci listeye ekledi ve fark ettiyseniz birinci listenin sonuna eklendi ikinci liste.

Remove Metodu

Türkçedeki anlamı “atmak,silmek, kaldırmak” olan bu metot listede istenilen elamanını silmeye yarıyor kullanımı ise şu şekildedir;

meyveler.remove("karpuz")
print(meyveler)
['elma', 'armut', 'kiraz', 'Üzüm', 'portakal', 'armut']

Bu şekilde meyveler listesindeki “karpuz” elemanını sildik.

Pop Metodu

Türkçedeki anlamı; “fırlatmak” olan bu metot remove metodu gibi eleman silmeye yarıyor. Ve bu metot elaman değil de elamanın indeksi ile silmeye işlemini yapıyor ve indeks belirtmediğinizde ise default olarak listenin son elemanını siler. Ayrıca bu metot silinen elamanı ekrana yazar.

>>> meyveler=['elma', 'armut', 'kiraz', 'karpuz', 'Üzüm', 'portakal', 'armut']
>>> meyveler.pop()
'armut'

Sort Metodu

Listenin elemanlarını alfabeye göre sıralamaya yarayan bu metodun kullanımını bir örnekle gösterelim.

meyveler =["elma","armut","kiraz","karpuz","Üzüm"]
meyveler.sort()
print(meyveler)

['armut', 'elma', 'karpuz', 'kiraz', 'Üzüm']

Reverse Metodu

Bu metot sort metodunun aksine listedeki elemanları ters eder hemen bir örnekle gösterelim;

sayilar =[1,2,3,4,5,6]
sayilar.reverse()
print(sayilar)
[6, 5, 4, 3, 2, 1]

Gördüğünüz gibi elemanları tersten yazdı tekrar kullanırsak listemiz yine eski haline gelecektir.

Index Metodu

Bu metot ise listedeki elamanları aramamızı sağlıyor hemen bir örnekle gösterelim;

meyveler =["elma","armut","kiraz","karpuz","Üzüm"]
meyveler.index("elma")
0

Çıktı bir sayı  çünkü biz burada “meyve” elamanının kaçıncı index de olduğunu sorguladık. Belki şimdi size biraz gereksiz gözükebilir ama ilerde milyonlarca elemana sahip olan listelerde arama işinizi çok kolaylaştıracaktır.

Count Metodu

Bu metodumuz ise listenin içinde sorgulanan elemandan kaç tane olduğunu bulma işlevine yarıyor bir örnekle gösterelim;

liste =["elma","armut","elma","kiraz","karpuz","Üzüm","elma"]
liste.count("armut")
1
liste.count("elma")
3

Copy Metodu :

Türkçe anlamından da anlaşılacağı gibi bu metot bir listelerde kopyalama işlevine yarıyor kullanımı hemen gösterelim.

liste1 =["elma","armut","kiraz","karpuz","Üzüm"]
liste2=[]
liste2 = liste1.copy()
print(liste2)

['elma', 'armut', 'kiraz', 'karpuz', 'Üzüm']

Aynı işlevi şu şekilde de kullanabilirsiniz size kalmış.

liste1 =["elma","armut","kiraz","karpuz","Üzüm"]
liste2=[]
liste2 = liste1
print(liste2)
['elma', 'armut', 'kiraz', 'karpuz', 'Üzüm']

Clear Metodu

Türkçedeki anlamından da anlaşılacağı gibi bu metot silme işlevini yapıyor yalnız karıştırmamanız gereken bir şey var bu metot listeyi değil içini boşaltmaya yarar.
Hemen bir örnek ile gösterelim;

liste =["elma","armut","kiraz","karpuz","Üzüm"]
liste.clear()
[]

Mobilhanem.com da Python Dersleri serisinin bu dersinde Listeleri ve Listelerin Metotlarını öğrendik bir sonraki dersimiz Python da Demetler ve Metotlarını  işleyeceğim. Anlamadığınız , eksik yada hatalı gördüğünüz olursa çekinmeden ulaşabilirsiniz size yardım etmekten mutluluk duyarım bir sonraki yazıda görüşmek üzere.

Bütün Python derslerine buradan ulaşabilirsiniz.

420

Cahit İşleyen

Data Scientist at @Embedica.ai
Python ve Linux sever.
Çay tiryakisi

23 Yorum

  • Merhaba Cahit bey,

    Insert metodunu anlatırken

    Liste.append(indeks,eleman)
    meyveler.insert(2,”üzüm”)

    yazmışsınız. Sanırım Liste.append değil Liste.insert olacak.

    Teşekkürler.

    • Mehmet bey Merhaba,
      Ben orada insert metodu ile ekleme yapmadan önce append metodu ile eleman ekledim. Ama kafa karıştırdığı için düzelttim ben. Yorumunuz için teşekkür ederim bu sayede bir karmaşıklığı giderdim 🙂

  • liste = [12, “burak”, 3.14, 12, “burak”, “foo”, “foo”, “burak”, 3.14, “bilgisayar”, “12”]
    listesi olsun. Bu listede hangi elemandan kaç tane ve hangi indislerde var ve bu elemanların veri türleri neler sorularının cevabını ve unique (tekrarsız) listeyi bize verecek Python kodunu yazınız.

    • liste = [12, “burak”, 3.14, 12, “burak”, “foo”, “burak”, “foo”, 3.14, “bilgisayar”, “12”]

      kackere = {i: [liste.count(i), liste.index(i), (type(i))] for i in liste}
      print(kackere)

  • Hocam index metodunu,bir liste içerisindeki tuple içerisindeki bir eleman için kullanabiliyor muyuz?

    • #bir liste oluştur listenin 1. indexi bir tuple
      listem = [“Ahmet”,(1,8,6,”Python”),4,5.4]

      #tuple içindeki “Python” kelimesini bul index ile
      listem[1].index(“Python”)
      3

      type(listem[1])
      tuple

      dir_tuple = [i for i in dir(listem) if i[0]!=”_”] #tuple için kullanabileceğin metotlar
      dir_tuple
      [‘append’,
      ‘clear’,
      ‘copy’,
      ‘count’,
      ‘extend’,
      ‘index’,
      ‘insert’, #insert metodunu tuple içinde kullanabileceğini görüyorsun.
      ‘pop’,
      ‘remove’,
      ‘reverse’,
      ‘sort’]

  • m.extend(“iyilik”) şeklinde yazınca iyiliği virgüllerle ayırdı.
    m.extend([“iyilik”]) şeklinde yazınca iyilik yazdı.

    Bunun mantığı ne hocam. Çok teşekkürler.

    • Merhaba onur extend metodu listeyi genişletmek listeye eleman eklemek için kullanılan bir metot. ikinci şekilde kullanınca Python [“iyilik”] bir index yani eleman olarak görüyor ve ekliyor ama siz ilk kullama şeklinde bir str eklerseniz extend metodu aynı şekilde str nin bütün elemanlarını teker teker ekler. zaten biz str açıklarken karakter dizisi demiştik.

  • Merhabalar,
    Listelerde del metodu olmamasına rağmen sadece listelere özgü olarak böyle bir komut verilebiliyor. Bunun sebebi nedir?

    • Merhaba biraz daha detaylı söyleyebilir misiniz ne demek istediğinizi tam olarak anlayamadım.

      • Hocam del komutu ile liste silme imkanı var, aynı komutla karakter seti veya demet silme imkanı yok. dir fonksiyonu ile Liste’nin fonksiyonları içine baktığınızda bunu göremiyorsunuz. del komutunun liste işleminde çalışması nasıl olabilir?

  • bir eleman listede varsa “true”, yoksa “false” veren bir metod lazım, ama burda bulamadım

  • int adet=0;
    string cumle ; “orhan cemal fersoy a.l.”
    char[ ] sesli={‘a’,’e’,’ı’,’i’,’u’,’ü’,’o’,’ö’
    cumle = Console.Readline( );
    for(int i=0; i<cümle .Length;i++)
    {
    for (int b=0; b<8; b++)
    {
    if (cumle==sesli)
    {
    adet=adet+1;
    }
    }
    }
    stringlength=len(str)
    slicedString==str[stringlength: :-1]
    print (slicedString)

    Bu programda sizce ne eksik metni ters çevirip içinde kaç sesli harfi bulmak için sizce program uygun mu

  • liste2=liste1 ile liste2=liste1.copy fark şeylerdir. Sadece = kullanırsanız değişkeni bellekteki aynı nesneye bağlar. Ama copy metodu bellekte yeni bir değişken açar. Daha da açıklayacak olursak = ile kopyalama yapıldığında listelerden birisinde yapılan değişiklik diğerine de yansır. copy’de bu durum ortadan kalkar.

  • Mesela bir input girdik fakat bu input değerinin listede bu input ile başlayan bir elemanı getirmesini istedik…

    Örnek;

    input –> ‘M’
    liste=[‘Metin,’Ali’,’Yusuf’]

    Çıktı;

    Metin

  • def findElement(myFunction, n):

    prefixSum = [0] * n
    prefixSum[0] = myFunction[0]
    for i in range(1, n) :
    prefixSum[i] = prefixSum[i – 1] + myFunction[i]
    suffixSum = [0] * n
    suffixSum[n – 1] = myFunction[n – 1]
    for i in range(n – 2, -1, -1) :
    suffixSum[i] = suffixSum[i+1] + myFunction[i]
    for i in range(1, n – 1, 1) :
    if prefixSum[i] == suffixSum[i] :
    return myFunction[i]
    return -1
    myFunction = [8,8,8,8]
    n = len(myFunction)
    print(findElement(myFunction , n))

  • sonuna sürekli yeni veri eklenen bir listede en güncelden geriye doğru 100 elemanı listede tutmak ve daha eskileri otomatik silmek istiyorum ve bunu yaparken yeni liste oluşturmak istemiyorum. yani [q,w,e,r,t,y,u,ı,o,p,ğ] listesine yeni veri olan (ü) eklendiğinde 0 indeksdeki (q) verisinin silinmesini istiyorum. yeni liste oluşturmadan bunu nasıl yapabilirim. teşekkür ederim.

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?