Python Hazır Kodlar


Python: Python Dersleri 22: Kümeler (sets)

Kodu Kopyala
#Python: Python Dersleri 22: Kümeler (sets)
#KÜMELER (SET) 
#Kümeler tıpkı diğer veri toplulukları gibi (listeler, sözlükler, demetler vb.) bir veri topluluğunu ifade eder. Diğerlerinden farklı olarak bir eleman sadece tek sefer geçer. Birden fazla aynı eleman eklenirse aynı olanlardan diğerleri silinir.
kume=set({"Ali","Veli","Veli","Osman","Hüseyin","Ali"})#Bu komutu tekrar tekrar çalıştırdığınızda her seferinde sıralamanın da rasgele değiştiğini göreceksiniz. Ayrıca bir kümede her eleman bir defa geçebilir. Bu nedenle tekrar eden eleman varsa onlar silinecektir.
#Yukarıdaki örneği aşağıdaki gibi de tanımlayabilirdik:
kume={"Ali","Veli","Veli","Osman","Hüseyin","Ali"}
#Başına SET yazmasak bile süslü parantez ile oluşturulduğu için onun küme olduğunu doğal olarak anlayacaktır.
print(*kume,sep="\n")
#Kümeler aynen matematikteki kümeler konusuna benzer.
#Herhangi bir değişken kümeye çevrilebilir.
kume2=set([1,2,3,4]) #Burada bir liste SET komutu ile kümeye dönüştürüldü. Bunu kume2={[1,2,3,4]} komutu ile yapmaya kalkışmayın!
print(kume2)
#Kümeler oluşturulurken dışına süslü parantez konur.
kume3={2,3,4}
print(kume3)
print(type(kume3))#Dikkat edilirse türü SET olarak belirtildi. Yani bu bir kümedir. Süslü parantez ile sözlük de üretilmektedir fakat hatırlanacağı gibi sözlüklerde anahtar ve değer vardı. Burada süslü parantez ile anahtar hariç sadece değer içeren bir nesne üretildiği için bunu küme olarak algıladı.
#Kümelerin hiç elemanı olmayabilir de:
kume4={}
print(kume4)
print(type(kume4))#Burada dikkat edilirse boş bir küme tanımladığımız halde süslü parantez ile ürettiğimiz için türünü sorduğumuzda bize SÖZLÜK (dict) sonucunu üretti.
kume4=set()
print(type(kume4))#Eğer tanımlamayı SET fonksiyonu ile yaparsak türü konusunda karmaşa yaşanmaz.
##################################################################################################################
#Kümelerin elemanları tek tek çağrılamaz. Zira kümeler bir bütündür. Ayrılamazlar.
#print(kume3[1])#Kümenin herhangi bir elemanı çağrılırsa hata verir. Bu nedenle bu komutu çalıştırmadık. Denemek amacıyla çalıştırınız.
#print(kume3[0:2])
#Daha önce de ifade ettiğimiz gibi kümeler matematikteki küme kavramı ile benzerlik gösterir. Her bir eleman sadece 1 defa yazılabilir. Ortak küme, kesişim kümesi vb. işlemlerin hepsi yapılabilir.
#Aşağıdaki örnekte bazı yatırımcıların portföylerindeki hisselerin listeleri küme olarak belirtilmiş. Her ikisinin ortak hisseleri üzerinde bir araştırma yapacağız.
Ali_Hisseleri={"TUPRS","GUBRF","GWIND","BIOEN","BIMAS","KUTPO","KARTN","CCOLA","ALGYO","GUBRF","GWIND","BIOEN","BIMAS"}
Hasan_Hisseleri={"KUTPO","OYAKC","SELEC","JANTS","GSDHO","GWIND","GENIL","CCOLA","VAKBN","AKSA","NUGYO","TURSG","TUPRS"}
#Öncelikle Ali'nin portföyünü yazdıralım:
print(Ali_Hisseleri)#Ali'nin hisseleri birden fazla yazıldığı için burada görüldüğü gibi teke indirildi.
print(len(Ali_Hisseleri))#Ali'nin toplam 13 hissesi yazılmış olduğu halde bazıları iki defa geçtiği için sonuç 9 verdi. Yani tekil 9 hisse var.
birlesim=Ali_Hisseleri.union(Hasan_Hisseleri)#Her iki kümeyi birleştirmek ve çift tekrar edenleri kaldırmak için UNION özelliği kullanıldı. Aslında toplamda 26 tane hisse ismi var fakat birleştirince 18 adet göründü.
print(birlesim)
print("Ali ve Hasan'ın toplam",len(birlesim),"adet hissesi vardır. Bunlar:",sorted(birlesim))

print("Ali'nin ve Hasan'ın toplam", len(birlesim), "hisse senedi vardır. Bunlar:",*birlesim,sep=", ")

kesisim=Ali_Hisseleri.intersection(Hasan_Hisseleri)#Her iki kümenin ortak elemanları, yani kesişim kümesi için INTERSECTION özelliği kullanılır.
print("Ali ve Hasan'ın ortak hisse senetleri toplam",len(kesisim),"adet olup bunlar:",sorted(kesisim),"hisseleridir.")

print(type(kesisim))

hisseler=["TUPRS","GUBRF","GWIND","BIOEN","BIMAS","KUTPO","KARTN","CCOLA","ALGYO","GUBRF","GWIND","BIOEN","BIMAS"]
print(type(hisseler))#Türü LIST
print(hisseler,len(hisseler))
hisseler=set(hisseler)
print(type(hisseler))#Türü SET oldu.
print(hisseler,len(hisseler))#Türünü SET olarak değiştirdiğimiz için daha önce tekrar eden hisseler kaldırıldı. Toplam 13'ten 9'a düştü.
#Kümelerde tekrar edenler olmadığı ve aynı zamanda bir çok sınırlama olduğu için burada hisseleri teke düşürdük. Sonra bu kümeyi tekrar listeye çevirerek liste işlemleri yapabiliriz.
hisseler=list(hisseler)#Artık tekrar listeye çevirdik. Bundan sonra listenin elemanlarını çağırabilir, üzerinde değişiklik vb. yapabiliriz.
print(type(hisseler))
print(hisseler[1])
hisseler+=['EREGL']
print(hisseler)
hisseler.sort(reverse=True)
print(hisseler)
#Şimdi tekrar kümeye çevirelim:
hisseler=set(hisseler)
#Bir elemanın küme içinde bulunup bulunmadığını öğrenmek için:
if "EREGL" in hisseler:
    print("EREGL hissesi portföyde var.")
else:
    print("EREGL hissesi yoktur.")
#Ya da doğrudan aşağıdaki gibi de yapılabilir:
print("EREGL" in hisseler) #Cevap True olarak gelir.
##################
hisseler={"TUPRS","GUBRF","GWIND","BIOEN","BIMAS","KUTPO","KARTN","CCOLA","ALGYO","GUBRF","GWIND","BIOEN","BIMAS"}
hisse=input("Lütfen hisse senedinin adını giriniz:")
if hisse in hisseler:
    print(hisse,"hissesi hisseler içerisinde yer almaktadır.")
else:
    print(hisse,"hissesi hisseler içerisinde yer almamaktadır.")
###############
#Kümenin elemanları değiştirilemez. Küme tamamen değiştirilebilir. Fakat kümeye yeni eleman eklenebilir.
hisseler.add("CIMSA")#ADD özelliği tek eleman ekler.
print(hisseler)
#Eğer kümeye birden fazla eleman ekleyeceksek ADD yerine UPDATE kullanmak gerekir.
hisseler.update({"TOASO","BAGFS","BRISA"})#Ekleme yaparken köşeli parantez veya süslü parantez kullanmayı unutmayın.
print(hisseler)
#Kümeden eleman silmek için REMOVE veya DISCARD özellikleri kullanılır.
hisseler.remove("EREGL")
print(hisseler)
#Eğer küme içinde bulunmayan bir elemanı REMOVE ile kaldırmaya çalışırsanız hata verir. DISCARD ise hata vermez. REMOVE bazı durumda hata mesajı vermeyebilir fakat programı o satırda durdurur.
hisseler.discard({"ABC"})
print(hisseler)
#Bilinmesi gereken bir özellik de POP olup daha önce ifade edildiği gibi son elemanı siler. Fakat kümelerde elemanlar her zaman rastgele sıralandığı için bu özellikle rasgele birini silecektir. Bu da anlamlı olmayacaktır.
#Kümeyi tamamen boşaltmak için CLEAR kullanılabilir.
hisseler.clear()
print(hisseler)
#Kümeyi tamamen silmek için del kullanılır.
del hisseler
########################################################################################################
print(Ali_Hisseleri)
print(Hasan_Hisseleri)
#Ali_Hisseleri içerisinde bulunup Hasan_Hisseleriiçinde olmayanlar, yani Ali_Hisseleri'nin Hasan_Hisseleri'nden farkını almak için DIFFERENCE kullanılır.
print(Ali_Hisseleri.difference(Hasan_Hisseleri))
#Birleşimi için UNION ve kesişimi için ise INTERSECTION kullanıyordu.
#Alt küme ve üst küme kavramları da önemlidir. X kümesi Y kümesinin tüm elemanlarını barındırıyorsa bu durumda X kümesi üst küme, Y ise alt kümedir.
#Bir kümenin başka bir kümenin üst kümesi olup olmadığını issuperset ("Is super set?" sorusu), ve alt kümesi olup olmadığını issubset ile öğrenebiliriz.
Ust_Kume={"a","b","c",1,2}
Alt_Kume={"a",2}
print(Ust_Kume.issuperset(Alt_Kume))#Cevap True
print(Ust_Kume.issubset(Alt_Kume))#Cevap False
print(Alt_Kume.issubset(Ust_Kume))#Cevap True
#Eğer bir listede yer alan elemanlardan tekrar edenleri silmek isterseniz onu önce kümeye dönüştürün ve sonra da tekrar liste yapın.
liste=[33,4,23,45,66,44,33,22,1,2,2,11,1,22,21,1,33,23,45,33]
kume=set(liste)
liste=list(kume)
print(liste)
#Aynı işlemi aşağıdaki gibi de yapabilirsiniz:
#liste=list(set(liste))
#Bir yazıyı kümeye çevirirseniz bu durumda her bir harfini küme elemanı yapar ve tekrar edenleri ortadan kaldırır.
cumle="Herkese selam"
kume=set(cumle)
print(kume)
#İlerleyen aşamalarda istatistiki işlemlerde kümeler ve listeler bu kapsamda birlikte kullanılacaktır. Ayrıca PANDAS ve NUMPY gibi veri bilimi amacıyla hazırlanan kütüphanelerde de karşımıza sıklıkla çıkacaktır. 






Hata ile ilgili görüşlerinizi aşağıdaki kutuya yazabilirsiniz.
Hata bildir

TÜM PYTHON KODLARI Youtube Kanalımız
Aşağıdaki makrolar işinize yarayabilir.
Benzer Sonuçlar
NoPython Kodu
1 Python Dersleri 22: Kümeler (Sets)
2 Python Dersleri 25: FOR Döngüsü Deyimleri: Break, Continue, Range, Enumerate, Zip
3 Python Dersleri 19: Sözlük Fonksiyonları
4 Python Dersleri 26: While Döngüsü
5 Python Dersleri 24: FOR Döngüsü Uygulamaları
6 Python Dersleri 20: Demetler (Tuples)
7 Python Dersleri 21: Demet (Tuple) Uygulamaları
8 Python Dersleri 23: FOR Döngüsü
9 Python Dersleri 27: Döngülerde ELSE Deyimi
10 Python Dersleri 18: Sözlük Uygulamaları
11 Hataları yakalamak ve hata deyimlerini kullanmak / TRY, EXCEPT, ValueError, ZeroDivisionError vb. hatalar ile ilgili işlemler Örnek olarak sıfıra bölme hatasının önüne geçme işlemi
12 Python sürümünü tespit etmek
13 Bir metin içerisinde aranan harften kaç tane var?
14 İki nesnenin veya iki değerin aynı olup olmadığını tespit etmek. "Nesne (Object)" kavramı ile "Değer (Value)" arasındaki farklar
15 Kullanılmakta olan Python dilinin versiyonunu görüntülemek
16 Sinüs (sin) hesaplama işlemleri
17 Tek satıra veya birden fazla satıra not yazmak veya not almak
18 Çalışmakta olduğunuz Python dosyasının nerede ve hangi dizin içerisinde olduğunu tespit etmek
19 Python kullanarak bilgisayarı kapatmak
20 if komutu nasıl kullanılır? Koşullu komutlar ve koşula bağlı işlemler


aaaaa