Bu bölümde orjinal dokümantasyonda veri yapıları olarak geçen;
- Sıra Türleri(Sequence Types): list, tuple,
- Eşleme Türü(Mapping Type): dict,
- Küme Türü(Set Types): set
gibi en çok kullanılan yapıları değineceğiz.
Liste Yapısı - list
Python ile birden fazla aynı veya farklı tipte veriyi saklamaya ihtiyaç duyabiliriz. Buna list
nesnesi sayesinde çözüm bulabiliyoruz.
- Liste oluşturma
notlarim = [90,80,60,70]
# ikinci yol olarak
benimListem = list()
- Liste elemanlarına erişim
Diğer programlama dillerinde olduğu gibi oldukça basit. İndexler
0
'dan başlar. Yani;notlarim[1]
ile listenin 2. elemanına erişirsiniz.
notlarim[0] # birinci elemana erişim
notlarim[2] # üçüncü elemana erişim
- Liste içinde liste oluşturma
ilkListem = ["e", 12, 25, 4.2]
buyukListem = [85.5, "Ali uzaya git.", ilkListem]
buyukListem
içerisindeki ilkListem
'in 12 değerine ulaşmak için:
buyukListem[2][1] # ile ulaşabiliriz.
- Birden fazla liste elemanına erişim
ornekListem[1:4]
ile 2. eleman dahil 5. eleman hariç listelenir.
ornekListem[:2]
ile aslında 0'dan 2. indise sahip elemana kadar listelenir. Aynı mantık ile 2. elemandan itibaren ornekListem[2:]
kısayol ile geriye kalan tüm elemanları yazdırabiliriz.
Not: Liste eleman manipülasyonları için
metod()
kullanımları tavsiye edilmektedir. Yine de bilgi amaçlı diğer kullanımlarda gösterilecektir.
- Liste elemanlarını değiştirme
Listedeki elemanları yukarıda gördüğümüz şekilde ve metodlarla değiştirebiliriz.
liste = ["Eydi", "Ali", "Veli", "Ayşe"]
liste[1] = "Ahmet" # 'Ali' ifadesini 'Ahmet' ile değiştirir.
# çoklu değişim
liste[0:3] = "Mert", "Berkay", "Fatih" # ile listenin ilk üç elemanı değişir.
- Listeye yeni eleman ekleme
liste = liste + "Gökhan" # mutlaka listeye eşitlemeliyiz!
- Listelerde silme işlemi
del liste # yazarsak tüm liste silinir.
del liste[1] # ile ilgili eleman silinir.
- Liste elemanlarını metodlarla manipüle etme
Listemizde kullanabileceğimiz metodları görmek için dir(liste)
yazabilir veya ide kullanıyorsak Ctrl + Space tuşlarıyla erişebiliriz.
liste.append("Ömer") # listeye yeni eleman ekler.
liste.remove("Berkay") # listenin 'Berkay' elemanını kaldırır.
liste.insert(2,"Işıl") # listenin index'ine göre eleman ekler.
liste.pop(4) # liste de indexe göre eleman siler.
# son indexe göre eleman eklemen için.
liste.insert(len(liste),"Esma") # kullanılabilir.
- Diğer liste metodları
liste.count("Eydi") # listemizde kaç tane 'Eydi' elemanı olduğunu söyler.
yedekListe = liste.copy() # listeyi kopyalar.
liste.extend(["Eydi", "Esma", "Gülhan"]) # ile yeni listeyi ekler ve birleştirir.
liste.reverse() # listeyi tersine çevirir.
liste.sort() # listedeki elemanları küçükten büyüğe doğru sıralar.
liste.clear() # liste içindeki herşeyi siler.
Demet Yapısı - tuple
Listeye bir çok yönüyle benzemektedir. Aralarındaki en büyük fark tuple'ların değiştirilemez olmasıdır. Yani; diğer programlama dillerindeki const
ifadelerine benzetilebilir.
- Tuple(Demet) oluşturma
benimTuple = 1,2,3,"Eydi",[10,20,30] # şeklinde veya
benimTuple2 = (1,2,3,"Eydi",[10,20,30]) # ile oluşturulabilir.
# klasik olarak nesne olduğu için
liste = [10,20,30,40,50]
benimTuple = tuple(liste) # ile de çoklu oluşturulabilir.
# tek olarak oluştururken virgülü unutmamalıyız!
benimDemet = (123,)
benimDemet = "Eydi", # iki ifade de geçerlidir.
empty = () # boş tuple oluşturmaktadır.
Sözlük Yapısı - dict (dictionary)
Sözlüklerin liste ve tuple ile aralarındaki en önemli fark sırasız olmalıdır. İndis yerine anahtar kelime(key value) ile değerleri çağırırlar. { } parantez içerisinde oluştururlar.
- Sözlük oluşturma
sozluk = {"dil":"python", "ders":"veri yapıları"}
# nesne oluşturma yöntemiyle
sozluk2 = dict(name="Eydi", age=29, country="Türkiye")
- Sözlük elemanlarına erişim
sozluk["dil"] # ile ekrana 'python' ifadesi yazdırılır.
sozluk2["name"] # ile ekrana 'Eydi' ifadesi yazdırılır.
- İç içe sözlük yapıları
Listelerde olduğu gibi iç içe sözlük veya sözlük içinde liste gibi yapılar oluşturulabilir.
ornekSozluk = {"anahtar":{"ikinciAnahtar":"değer", "ders":"sözlükler"},
"kayisiKenti": "Malatya", 44: "plakaKodu", "liste": [10,20,30,40,"kelime"]}
# üstteki örnekteki gibi oluşturulabilir.
# iç içe yapılarda yine dizilerdeki gibi
ornekSozluk["anahtar"]["ders"] # ekrana 'sözlükler' yazdirilabilir.
ornekSozluk["liste"][2] # 30 rakamına ulaşılır.
# anahtar değerler rakamlardan da oluşabilir.
ornekSozluk[44] # ifadesi ile 'plakaKodu' ekrana yazdırılır.
- Sözlük elemanları ekleme veya değiştirme
sozluk["name"] = "Esma" # ile mevcut eleman değerini değiştirir.
sozluk["ifade"] = "Yeni ekleme" # şeklinde sonuna eleman eklenir.
# çeşitli metodlar kullanılabilir.
sozluk.keys() # anahtar sözcükleri listeler.
sozluk.values() # değerleri listeler.
sozluk.items() # tüm itemleri listeler.
sozluk.pop() # verilen key değerine göre siler.
Küme Yapısı - set
Aslında en temel özelliği her elemandan sadece bir tane bulundurmasıdır.
- Set oluşturma
kume = set() # boş set oluşturulur.
# {} ile de tanımlanabilirler.
kume = {1,2,3,4}
#başka bir liste nesnesi aktarılabilir
liste = ["a", 10, 2.4, "Eydi"]
kume = set(liste)
Not: Sözlükler ile oluşturulurken aralarındaki fark bir anahtar(key) değere sahip olmamasıdır. Yalnız;
kume = {}
şeklinde yazarsak python da ön tanımlı olarak boş sözlük oluşturulur.
- Setlere eleman ekleme ve çıkarma
kume = set()
kume.add("Eydi") # ile eleman ekleriz.
kume.remove("Eydi") # ile eleman sileriz.
# remove eğer 'Eydi' ifadesini bulamazsa hata verir.
kume.discard("Eydi") # hata vermeden devam eder.
- Setlerde küme işlemleri
kume1 = set([1,4,7])
kume2 = set([1,3,7])
# ilk kümeden ikincisinin farkını alır
kume1.difference(kume2) # kume1 - kume2 olarak da ifade edilebilir.
# iki kümede de olmayan elemanları gösterir
kume1.symmetric_difference(kume2) # çıktı : {3,4}
# iki kümenin kesişimi
kume1.intersection(kume2) # kume1 & kume2 ilede ifade edilebilir.
# birleşim işlemi
kume1.union(kume2)
Not: Set işlemleri arasında
intersection_update()
gibi metodlar görmektesiniz. Aslında bu ifade elde edilen değerlerin belirleyeceğiniz kümeye atanmasını sağlar.
#elde edilen değeri atamak için
kume1.intersection_update(kume2) # ile kesişim kümesi kume1 'e aktarılır.
Top comments (0)