Python'da 4 Yerleşik Veri Yapısı: Sözlükler, Listeler, Kümeler, Tuple'lar
Yayınlanan: 2020-03-24Bu yazıda Python'daki veri yapılarına odaklanacağız ve konuyu net bir şekilde anlamanıza yardımcı olacağız. Ne olduklarını ve nasıl çalıştıklarını öğreneceksiniz. Ayrıca burada paylaştığımız herhangi bir konuda şüphe duymamanız için sayısız örnek paylaştık.
O halde lafı fazla uzatmadan başlayalım.
İçindekiler
Veri Yapıları nedir?
Veri yapıları, verilerinizi etkin ve verimli bir şekilde düzenlemenize ve yönetmenize olanak tanır. Verilerinizin erişilebilirliğini artırırlar. Uygun veri yapılarına sahipseniz, saklanan verileri değiştirmek de oldukça basit hale gelir. Daha sonra herhangi bir zorlukla karşılaşmadan işlemleri gerçekleştirebilmeniz için verileri düzenlemenizi ve saklamanızı sağlarlar.
Python'un iki tür veri yapısı vardır. Python'un dolaylı olarak desteklediği veri yapıları Set, Dictionary, List ve Tuple'dır. Bunlar Python'un yerleşik veri yapılarıdır.
Ardından, işlevsellik üzerinde daha iyi kontrol sahibi olmak için kendiniz oluşturabileceğiniz veri yapıları vardır. Bunlar, kullanıcı tanımlı veri yapılarıdır ve Bağlantılı Listeler, Grafikler, Ağaçlar, Yığınlar, Kuyruklar ve HashMaps'i içerir. Kullanıcı tanımlı veri yapıları diğer programlama dillerinde de mevcuttur.
Devamını oku: R'de En Sık Kullanılan 6 Veri Yapısı
Python'da Yerleşik Veri Yapıları
Python'un birden fazla yerleşik veri yapısı vardır. Bu entegre veri yapıları, programlama problemlerini hızlı ve kolay bir şekilde çözmenize yardımcı olur. Daha önce de belirttiğimiz gibi Python aşağıdaki entegre veri yapılarına sahiptir:
- sözlükler
- Listeler
- Setler
- demetler
Her birini ayrıntılı olarak tartışalım:
1. Sözlükler
Anahtar/değer çiftlerini depolamak için sözlükler kullanırız. Tıpkı fiziksel bir sözlüğün anlamı ile birlikte saklanan bir kelimeye sahip olması gibi, Python'daki bir sözlük de anahtar-değer çiftlerini saklar. Terimler anahtardır, bu kelimelerle ilişkili çeşitli anlamlar ise değerlerdir. Değer ile tuşlara erişebilirsiniz.
Çiçek parantezleri ile bir sözlük oluşturabilirsiniz. Bu amaçla dict() işlevini de kullanabilirsiniz. İşte bir örnek:
my_dict = {} #boş sözlük
yazdır(my_dict)
my_dict = {1: 'A', 2: 'B'} #dictionary ile elementler
yazdır(my_dict)
Yukarıdaki kodun çıktısı:
{}
{1: 'A', 2: 'B'}
Tuşlar aracılığıyla sözlüğün değerlerini değiştirebilirsiniz. Değerleri değiştirmek için önce anahtarlara erişmeniz gerekir. Anahtarları bulduktan sonra, istenen sonucu elde etmek için gerekli anahtar/değer çiftini eklemeniz yeterlidir.
my_dict = {'Birinci': 'A', 'İkinci': 'B'}
yazdır(my_dict)
my_dict['İkinci'] = 'C++' #değişen öğe
yazdır(my_dict)
my_dict['Üçüncü'] = 'Ruby' #anahtar/değer çifti ekleme
yazdır(my_dict)
Yukarıdaki kodun çıktısı:
{'Birinci': 'A', 'İkinci': 'B'}
{'Birinci': 'A', 'İkinci': 'C'}
{'Birinci': 'A', 'İkinci': 'C', 'Üçüncü': 'D'}
pop() işlevini kullanarak sözlüğünüzdeki değerleri silebilirsiniz. pop() işlevi, sildiğiniz değeri döndürür. popitem() işlevi aracılığıyla bir anahtar/değer çifti alabilirsiniz. Çiftin demetini döndürür. clear() işlevini kullanarak tüm sözlüğü de temizleyebilirsiniz. İşte örnek:
my_dict = {'Birinci': 'A', 'İkinci': 'B'', 'Üçüncü': 'C'}
a = my_dict.pop('Üçüncü') #pop öğesi
print('Değer:', a)
print('Sözlük:', my_dict)
b = my_dict.popitem() #anahtar-değer çiftini aç
print('Anahtar, değer çifti:', b)
print('Sözlük', my_dict)
my_dict.clear() #boş sözlük
print('n', my_dict)
Yukarıdaki kodun çıktısı:
Değer: C
Sözlük: {'Birinci': 'A', 'İkinci': 'B'}
Anahtar, değer çifti: ('İkinci', 'B')
Sözlük {'İlk': 'A'}
{}
Ayrıca okuyun: Python Proje Fikirleri ve Konuları
2. Listeler
Verileri sırayla depolamak için listeler kullanırız. Listenin her öğesinin, dizin olarak da adlandırılan bir adresi vardır. Bir listenin indeks değeri, 0'dan listenizde bulunan son öğeye kadar gider ve adı pozitif indekslemedir. Benzer şekilde, son elemandan ilk elemana geri dönüp -1'den saydığınızda buna negatif indeksleme denir.
Köşeli parantezler kullanarak bir liste oluşturabilir ve bunlara istediğiniz gibi öğeler ekleyebilirsiniz. Köşeli parantezleri boş bırakırsanız, listede herhangi bir öğe olmaz ve liste de boş olur. İşte bir liste örneği:
my_list = [] #boş liste oluştur
yazdır(my_list)
my_list = [A, B, C, 'example', Z] #verilerle liste oluşturma
yazdır(my_list)
Yukarıdaki kodun çıktısı:
[]
[A, B, C, 'örnek', Z]
insert(), extension() ve append() fonksiyonlarını kullanarak listenize eleman ekleyebilirsiniz. insert() işlevi, indeks değerine geçirilen öğeleri ekler. insert() işlevi, listenin boyutunu da artırır.
append() işleviyle, kendisine iletilen tüm öğeleri tek bir öğe olarak ekleyebilirsiniz. Öte yandan, extension() işlevi, öğeleri tek tek ekleyebilir.
İşte bir örnek:
my_list = [A, B, C]
yazdır(my_list)
my_list.append([555, 12]) #tek bir öğe olarak ekle
yazdır(my_list)
my_list.extend([234, 'more_example']) #farklı öğeler olarak ekle
yazdır(my_list)
my_list.insert(1, 'insert_example') #add element i
yazdır(my_list)
Yukarıdaki kodun çıktısı:
[A, B, C]
[A, B, C, [555, 12]]
[A, B, C, [555, 12], 234, 'more_example']
[A, 'insert_example', B, C, [555, 12], 234, 'more_example']
Listelerle çalışırken bazı öğeleri de kaldırmanız gerekir. 'del' anahtar kelimesini kullanabilirsiniz. Python'un yerleşik bir anahtar sözcüğüdür ve hiçbir şeyi geri döndürmez. Bir öğeyi geri istiyorsanız, pop() işlevini kullanmanız ve bir öğeyi değeri aracılığıyla kaldırmak için remove() işlevini kullanmanız gerekir. İşte örnek:

my_list = [A, B, C, 'örnek', Z, 10, 30]
del my_list[5] #delete öğesi dizin 5'te
yazdır(my_list)
my_list.remove('example') değeri olan #remove öğesi
yazdır(my_list)
a = my_list.pop(1) #pop öğesi listeden
print('Atılan Öğe: ', a, ' Kalan liste: ', listem)
my_list.clear() #listeyi boşalt
yazdır(my_list)
Yukarıdaki kodun çıktısı:
[A, B, C, 'örnek', Z, 30]
[A, B, C, Z, 30]
Atılan Öğe: 2 Kalan liste: [A, C, Z, 30]
[]
Python'da indeks değerlerini iletebilir ve gerekli değerleri alabilirsiniz.
my_list = [A, B, C, 'örnek', Z, 10, 30]
my_list öğesi için: #access öğeleri tek tek
yazdır(eleman)
print(my_list) #tüm öğelere eriş
print(my_list[3]) #access dizin 3 öğesi
print(my_list[0:2]) #erişim elemanları 0'dan 1'e ve 2'yi hariç tut
print(my_list[::-1]) #erişim öğelerini tersten
Yukarıdaki kodun çıktısı:
A
B
C
örnek vermek
Z
10
30
[A, B, C, 'örnek', Z, 10, 30]
örnek vermek
[A, B]
[30, 10, Z, 'örnek', 3, 2, 1]
3. Setler
Benzersiz ve sıralanmamış öğelerin bir koleksiyonuna küme denir. Yani, herhangi bir nedenle veriyi tekrarlarsanız, sette sadece bir kez görünecektir. Python'daki kümeler, matematikte okuduğunuz kümelere benzer. Özelliklerinden işlevlerine kadar aralarında pek çok benzerlik bulacaksınız.
Çiçek parantezlerini kullanarak ve değerlerini ileterek bir takım oluşturabilirsiniz. İşte bir örnek:
my_set = {A, B, C, D, E, E, E} #set oluştur
yazdır(my_set)
Yukarıdaki kodun çıktısı:
{A, B, C, D, E}
Daha önce de bahsettiğimiz gibi, aritmetikte gerçekleştirdiğiniz kümelerin tüm işlevlerini Python'un kümelerinde gerçekleştirebilirsiniz. union() işleviyle, iki kümede bulunan verileri birleştirebilirsiniz. kesişim() işlevi, bahsedilen kümelerin her ikisinde de bulunan verileri size verir.
Her iki kümede de mevcut olan verileri silmenize izin veren ve aralarında yaygın olmayan verileri veren fark() işlevine sahipsiniz. simetrik_difference() işlevi, bu kümelerde kalan verileri size verir.
my_set = {A, B, C, D}
my_set_2 = {C, D, E, F}
print(my_set.union(my_set_2), '———-', my_set | my_set_2)
print(my_set.intersection(my_set_2), '———-', my_set & my_set_2)
print(my_set.difference(my_set_2), '———-', my_set – my_set_2)
print(my_set.smetric_difference(my_set_2), '———-', my_set ^ my_set_2)
my_set.clear()
yazdır(my_set)
Yukarıdaki kodun çıktısı:
{A, B, C, D, E, F} ———- {A, B, C, D, E, F}
{C, D} ———- {C, D}
{A, B} ———- {A, B}
{A, B, E, F} ———- {A, B, E, F}
Ayarlamak()
Ayrıca okuyun: Hindistan'da Python Geliştirici Maaşı
4. demetler
Tuple'lar listelere benzer, ancak bir tuple'a veri girdikten sonra, değiştirilebilir olmadıkça değiştiremezsiniz. Bunları anlamak biraz zor olabilir ama merak etmeyin, örnek kodumuz bu konuda size yardımcı olabilir. Tuple() işlevi yardımıyla bir demet oluşturabilirsiniz.
my_tuple = (A, B, C) #create tuple
print(my_tuple)
Yukarıdaki kodun çıktısı:
(A, B, C)
Tuplelerdeki değerlere erişme yöntemi listelerdekiyle aynıdır.
my_tuple2 = (A, B, C, 'Yükseltme') #access öğeleri
my_tuple2'deki x için:
yazdır(x)
yazdır(my_tuple2)
print(my_tuple2[0])
print(my_tuple2[:])
Yukarıdaki kodun çıktısı:
A
B
C
Yükseltme
(A, B, C, 'Yükseltme')
A
(A, B, C, 'Yükseltme')
Çözüm
Artık Python'daki çeşitli veri yapılarına aşina olmalısınız. Umarız bu makaleyi faydalı bulmuşsunuzdur. Veri yapıları, verilerinizi düzenlemenize, yönetmenize ve erişmenize yardımcı olmada önemli bir rol oynar. Aralarından seçim yapabileceğiniz birçok seçenek var ve her birinin kendine özgü kullanımları var.
Python ve veri yapıları hakkında daha fazla bilgi edinmek istiyorsanız derslerimize göz atmalısınız.
Python ve veri bilimi hakkında her şeyi öğrenmek istiyorsanız, IIIT-B & upGrad'ın çalışan profesyoneller için oluşturulan ve 10'dan fazla vaka çalışması ve proje, pratik uygulamalı atölye çalışmaları, endüstri ile mentorluk sunan Veri Biliminde PG Diplomasına göz atın uzmanlar, sektör danışmanlarıyla bire bir, 400+ saat öğrenim ve en iyi firmalarla iş yardımı.
Sözlük veri türü ne zaman kullanılır?
Sözlük, anahtar ve değer çiftlerinde depolanan bir veri koleksiyonu olarak Python'da kullanılan değerli bir veri türü olarak tanımlanabilir. Şimdi, sözlüğün değerleri herhangi bir veri türünde olabilir, ancak anahtarların tuple, tamsayı veya dize gibi değişmez bir veri türü olması gerekir.
Tüm veri koleksiyonuna girmeden anında bir değer bulmak istediğinizde sözlükler oldukça kullanışlıdır. Bunun dışında bir sözlük, verilerin sırasının önemli olmadığı durumlarda da oldukça kullanışlıdır. Sözlük veri türü, listelere ve demetlere kıyasla daha fazla yer kaplama eğiliminde olduklarından, belleğin dikkate alınması önemli bir faktör olmadığında tercih edilir.
Listeler ve demetler arasındaki fark nedir?
Liste ve demetler, Python'da veri toplamayı depolamak için yararlı olan dizi veri türleridir. İkisi arasındaki en önemli fark, listelerin değişken, demetlerin değişmez olmasıdır. Bunun da ötesinde, yinelemelerin anlamı, listelerdekilere kıyasla demetlerde çok daha hızlıdır.
Ekleme ve silme işlemleri yapmak istiyorsanız listeler işinizi kolaylaştırır. Aynı zamanda tuplelerde elemanlara daha iyi erişilebilir. Herhangi bir veri yapısının kullanımını belirleyen bir diğer önemli faktör de hafızadır. Burada listeler, demetlere kıyasla daha fazla bellek tüketme eğilimindedir.
Kümelerin listelerden farkı nedir?
Listeler, her zaman homojen olmaları gerekmediğinden Python'daki en güçlü araç olarak kabul edilir. Hem listeler hem de kümeler her türden veri türünü içerebilir. Şimdi, listeler yinelenen öğeler içerebilir, ancak kümeler hiçbir zaman yinelenen öğeler içeremez ve bunlar yalnızca kümeden kaybolur.
Listelerde öğelerin sırası korunur, ancak kümeler hiçbir zaman öğelerin sırasını koruyamaz. Listeler çok fazla hesaplama alanı kapladığından, büyük miktarda zaman alırlar. Öte yandan, kümeler arama yapmak için karmadan yararlanır ve sonuçta listelerden çok daha hızlı olur.