Kümeler. Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları. *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.

Benzer belgeler
Ardışık Veri Tipleri. Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları. *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.

Sözlükler. Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları. *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.

Mantıksal Kontrol ve Döngü Komutları

Pandas. Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları. *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.

Lambda, Map, Filter ve Dizi Tamamlama

Girdi Çıktı İşlemleri

Fonksiyonlar. Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları. *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.

Giriş. Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları. *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.

Veri Tipleri. Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları. *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.

Scipy. Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları. *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.

Python ile Programlamaya Giris

Python Programlama Dili

Python ile Programlamaya Giris

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DERS KİTAPLARI LİSTESİ

Python ile Programlamaya Giriş DERS 8: DEMETLER VE SÖZLÜKLER DR. HÜSEYİN BAHTİYAR

PYTHON PROGRAMLAMA DİLİ

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

Teori/Saat Uygulama/Saat Laboratuar/Saat AKTS BLM Dersin Amacı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Teori/Saat Uygulama/Saat Laboratuar/Saat AKTS BLM Dersin Amacı

YAKIN DOĞU ÜNİVERSİTESİ DIŞA AÇIK DERSLER KOORDİNATÖRLÜĞÜ BİLGİSAYAR MÜHENDİSLİĞİ - İNGİLİZCE

Yrd. Doç. Dr. Caner ÖZCAN

Python ile Programlamaya Giriş DERS 9: FONKSİYONLAR DR. HÜSEYİN BAHTİYAR

BMT 206 Ayrık Matematik. Yük. Müh. Köksal GÜNDOĞDU 1

KÜMELER Test A a,b,c, 1,2, A a,b,c,d 2. A,1,2,3, s(a) = 10 ve s(b) = B x:0 x 40 ve x 5k, k. 8. s(a) = 9 ve s(b) = 4

BMT 206 Ayrık Matematik. Yük. Müh. Köksal GÜNDOĞDU 1

YZM 3215 İleri Web Programlama

Python ile Programlamaya Giriş DERS 11: DOSYA İŞLEMLERİ DR. HÜSEYİN BAHTİYAR

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

Nesne Tabanlı Programlama (COMPE 225) Ders Detayları

HSancak Nesne Tabanlı Programlama I Ders Notları

Fundamentals of Object-Oriented Programming (COMPE 723) Ders Detayları

Standart Veri Tipleri

Mantıksal İşlemler. 7.1 true, false, nil

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 1002

Göstericiler (Pointers)

Doğrusal Olmayan Devreler, Sistemler ve Kaos

Programlama Dilleri 3

SIMMAG Kullanım Kılavuzu. Adem Ayhan Karmış. Ana Ekran

MATM 133 MATEMATİK LOJİK. Dr. Doç. Çarıyar Aşıralıyev

C Programlama Dili (MCS116) Ders Detayları

Bilgisayar Mühendisliği. Bilgisayar Mühendisliğine Giriş 1

Lisans. Ayrık Matematik Yüklemler ve Kümeler. Konular. Tanım. Tanım çalışma evreni: U izin verilen seçenekler kümesi örnekler:

EĞİTİM-ÖĞRETİM YILI MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ (İNGİLİZCE) BÖLÜMÜ DERS PROGRAMINDA YAPILAN DEĞİŞİKLİKLER

Bilgisayarlara ve Programlamaya Giriş (COMPE 101) Ders Detayları

Fatura Dinamik Kodlama İyileştirmeleri

AST415 Astronomide Sayısal Çözümleme - I. 0. Derse Giriş

BOOTLOADER MANUAL DOCUMENT

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

Bölüm 6. Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler

Pointer Kavramı. Veri Yapıları

YZM 2105 Nesneye Yönelik Programlama

Python ile Programlamaya Giriş DERS 6: DÖNGÜLER DR. HÜSEYİN BAHTİYAR

PASCAL PROGRAMLAMA DİLİ YAPISI

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

Yrd. Doç. Dr. Caner ÖZCAN

Olasılık ve İstatistik II (IE 202) Ders Detayları

ÖZEL EGE LİSESİ FİBONACCİ DİZİLERİ YARDIMIYLA DEĞERİNİ HESAPLAYAN BİR FORMÜL

3500 Kırmızı 1210 SMD İç Mekan Mt/ 60 LED 120 Derece Mt/400 ma Mt/4.8 Watt 1 USD

Data Science Boot Camp

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Veri Yapıları ve Algoritmalar dönem

YAKIN DOĞU ÜNİVERSİTESİ DIŞA AÇIK DERSLER KOORDİNATÖRLÜĞÜ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ - İNGİLİZCE

AST415 Astronomide Sayısal Çözümleme - I. 8. Python'da Dosya Yönetimi Metin (String) ve Sözlük (Dictionary) Değişkenler

1. GİRİŞ Kılavuzun amacı. Bu bölümde;

Bilgisayarlı Çizim (COMPE 473) Ders Detayları

EM302 Yöneylem Araştırması 2. Dr. Özgür Kabak

Aşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz?

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

NX Motion Simulation:

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları

Veritabanı Yönetim Sistemleri İleri SQL

Ç.Ü. BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ GÜZ YARIYILI DERS PROGRAMI

D İ Z İ L E R A R R A Y S

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

Nesne Yönelimli Programlama

Python Programlama Dili

Hafta 13 Fonksiyonlar

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

Matematikte Sonsuz. Mahmut Kuzucuoğlu. Orta Doğu Teknik Üniversitesi Matematik Bölümü İlkyar-2017

Listeler. Liste Tanımlamak

Bilgisayar Programlama (COMPE 102) Ders Detayları

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları

C Konsol ve Komut Satırı

Öğr. Gör. Serkan AKSU 1

Nesne Tabanlı Programlama (COMPE 225) Ders Detayları

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

Python GELECEK. Barış Metin Linux Sistemleri. Python Programlama Dili

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

1. LabVIEW ile Programlama

Yukarıdaki kod aksi belirtilmediği sürece sürekli çalışır. Yani ekrana sürekli Bilgisayar çıldırdı! yazısı gelir. Ancak;

Gevşek Hesaplama (COMPE 474) Ders Detayları

LINQ (Temel Kavramlar)

Yrd. Doç. Dr. Caner ÖZCAN

Transkript:

Kümeler Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.

Kümeler (Sets) Kümeler, listelere benzer şekilde farklı tipte (metin tipi / tamsayı vb.) elemanlar içerebilirler. Bununla birlikte, küme elemanları "değiştirilemez (immutable)" türde olmak zorundadır. Küme elemanları "değiştirilemez (immutable)" türde olmak zorunda olsa da, kümelerin kendisi değiştirilebilir (mutable) türdedir. Sözlükler genişletilebilir veya daraltılabilir. Kümeleri diğer veri tiplerinden ayıran bir diğer fark, aynı elemanının bir kümede ancak bir kere yer alabilmesidir. Python'daki kümeler, matematikte kullanılan küme operatörleri (altküme, birleşim, kesişim, fark vb.) desteklediğinden oldukça kullanışlıdırlar.

Kümeler (Sets) Kümelerin tanımlanması: Kümeler doğrudan set() fonksiyonu ile veya {} operatörleri ile tanımlanabilir. >>> iller = set(["ankara", "Adana", "Samsun"]) >>> print(iller) {'Ankara', 'Adana', 'Samsun'} >>> iller = set({"ankara":"06", "Adana": "01", "Samsun":"55"}) >>> print(iller) {'Adana', 'Ankara', 'Samsun'} >>> iller = {"Ankara", "Adana", "Samsun"} >>> print(iller) {'Adana', 'Ankara', 'Samsun'} >>> x = set("jfm212") >>> print(x) {'M', 'J', '2', '1', 'F'}

add(): Küme elemanları değiştirilemez türde olmak zorundadır. Bu nedenle "add()" fonksiyonuna verilecek parametre de değiştirilemez türde olmak zorundadır. >>> renkler = set(["sarı", "Mavi", "Yeşil"]) >>> renkler.add('kırmızı') >>> print(renkler) {'Yeşil', 'Mavi', 'Kırmızı', 'Sarı'} >>> renkler.add(['kırmızı','turuncu']) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list'

update(): Mevcut bir kümeye "add()" fonksiyonu ile bir eleman eklenebilir. Birden fazla eleman eklenmek istenirse, "update()" komutu kullanılabilir. >>> renkler = set(["sarı", "Mavi", "Yeşil"]) >>> renkler.update(["turuncu","kırmızı"]) >>> print(renkler) {'Yeşil', 'Mavi', 'Turuncu', 'Kırmızı', 'Sarı'}

clear(): Bir kümeden tüm elemanları siler. Ancak, kümenin kendisini silmez, sadece boş küme haline getirir. >>> renkler = set(["sarı", "Mavi", "Yeşil"]) >>> renkler.clear() >>> print(renkler) set()

copy(): Bir kümeden tüm elemanları siler. Ancak, kümenin kendisini silmez, sadece boş küme haline getirir. >>> renkler = set(["sarı", "Mavi", "Yeşil"]) >>> renkler2 = renkler >>> renkler2.clear() >>> print(renkler) set() >>> renkler = set(["sarı", "Mavi", "Yeşil"]) >>> renkler2 = renkler.copy() >>> renkler2.clear() >>> print(renkler) {'Yeşil', 'Mavi', 'Sarı'}

difference(): (-) Bir küme ile diğer bir kümenin farkını verir (A \ B). >>> y = {"b","c"} >>> z = {"c","d"} >>> x.difference(y) {'a', 'e', 'd'} >>> x.difference(y).difference(z) {'a', 'e'} Aynı işlem "-" operatörü ile de yapılabilir: >>> x - y {'a', 'e', 'd'} >>> x - y z {'a', 'e'}

symmetric_difference(): (^) Bir küme ile diğer bir kümenin her iki küme için de farkını verir. >>> y = {"b","c"} >>> z = {"c","d"} >>> x ^ y {'a', 'd', 'e'} >>> y ^ z {'b', 'd'} >>> y - z {'b'}

difference_update(): Bir küme ile diğer bir kümenin farkını (A \ B) alarak, A'yı sadece bu elemanlardan oluşacak hale getirir. (A = A \ B) >>> y = {"b","c"} >>> x.difference_update(y) >>> print(x) {'d', 'a', 'e'}

discard(eleman): Bir kümede elemanı kümeden çıkarır. Bu eleman kümede yoksa hata mesajı vermez. >>> x.discard("a") >>> x {'c', 'b', 'e', 'd'} >>> x.discard("z") >>> x {'c', 'b', 'e', 'd'}

remove(eleman): Aynı "discard" fonksiyonu gibi olmakla birlikte, çıkarılacak eleman kümede yoksa hata mesajı verir. >>> x.remove("a") >>> x {'b', 'c', 'd', 'e'} >>> x.remove("z") Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'z'

intersection(küme): (&) Bir kümenin diğer bir küme ile olan kesişim kümesini bulur. >>> y = {"c","d","e","f","g"} >>> x.intersection(y) {'c', 'e', 'd'} VEYA >>> x & y {'c', 'e', 'd'}

isdisjoint() Bir kümenin diğer bir küme ayrık kümeler olup olmadığını bulur. >>> y = {"c","d","e","f","g"} >>> x.isdisjoint(y) False >>> y = {"h","j","k","f","g"} >>> x.isdisjoint(y) True

issubset() (<=) Bir kümenin diğer bir kümenin altkümesi olup olmadığını bulur. >>> x = {"c","d"} >>> y = {"a","b","c","d","e"} >>> x.issubset(y) True >>> x = {"c","d"} >>> y = {"a","b","c","d","e"} >>> x <= y True

issuperset() (>=) Bir kümenin diğer bir kümenin altkümesi olup olmadığını bulur. >>> x = {"c","d"} >>> y = {"a","b","c","d","e"} >>> y.issuperset(x) True >>> x = {"c","d"} >>> y = {"a","b","c","d","e"} >>> y >= x True

pop() Bu fonksiyon, kümenin rasgele bir elemanını verir ve bu elemanı kümeden çıkarır. >>> x.pop() 'b' >>> print(x) {'c', 'a', 'd', 'e'} >>> x.pop() 'c' >>> print(x) {'a', 'd', 'e'}

Birden Fazla Küme: Birleşim ve kesişim fonksiyonları birden fazla küme üzerinde çalışabilir. >>> y = {"h","j","c","d","k"} >>> z = {"i","b","e","d","n"} >>> set.intersection(x,y,z) {'d'} >>> set.union(x,y,z) {'j', 'd', 'i', 'b', 'c', 'a', 'k', 'n', 'h', 'e'}

Küme elemanı olup olmadığını kontrol: >>> 'c' in x True >>> 'p' in x False

Küme elemanları üzerinde döngüler: >>> for harf in x:... print(harf)... b c a d e

Dondurulmuş Kümeler: "Dondurulmuş kümeler" normal kümeler ile aynı özelliklere sahip olmakla birlikte, kümelerden farklı olarak oluşturulduktan sonra değiştirilemezler. "Değiştirilemez (immutable)" tipte olmalarının birçok kullanım alanı vardır. Örneğin, sözlüklerde anahtar olabilirler veya bir kümenin elemanı olabilirler >>> x = frozenset(["a","b","c","d","e"]) >>> y = set([x,3,4,5]) >>> y {3, 4, frozenset({'b', 'c', 'a', 'd', 'e'}), 5} >>> x.add('f') Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'frozenset' object has no attribute 'add'

Kaynakça 1 Wentworth, P., Elkner, J., Downey, A.B., Meyers, C. (2014). How to Think Like a Computer Scientist: Learning with Python (3nd edition). 2 Pilgrim, M. (2014). Dive into Python 3 by. Free online version: DiveIntoPython3.org ISBN: 978-1430224150. 3 Summerfield, M. (2014) Programming in Python 3 2nd ed (PIP3) : - Addison Wesley ISBN: 0-321-68056-1. 4 Summerfield, M. (2014) Programming in Python 3 2nd ed (PIP3) : - Addison Wesley ISBN: 0-321-68056-1. 5 Jones E, Oliphant E, Peterson P, et al. SciPy: Open Source Scientific Tools for Python, 2001-, http://www.scipy.org/. 6 Millman, K.J., Aivazis, M. (2011). Python for Scientists and Engineers, Computing in Science & Engineering, 13, 9-12. 7 John D. Hunter (2007). Matplotlib: A 2D Graphics Environment, Computing in Science & Engineering, 9, 90-95. 8 Travis E. Oliphant (2007). Python for Scientific Computing, Computing in Science & Engineering, 9, 10-20. 9 Goodrich, M.T., Tamassia, R., Goldwasser, M.H. (2013). Data Structures and Algorithms in Python, Wiley. 10 http://www.diveintopython.net/ 11 https://docs.python.org/3/tutorial/ 12 http://www.python-course.eu 13 https://developers.google.com/edu/python/ 14 http://learnpythonthehardway.org/book/