Bu dersimizde veri tiplerinden olan liste , demet , ve sözlük veri tiplerini öğreneceğiz. Bu veri tiplerinin içindede bazi metotlar göreceğiz. LİSTELER Liste oluşutururken dikkat etmemiz gereken iki nokta var. Birincisi aynı değişkenler gibi bir isim vermek . İkincisi ise listemizi oluşturan ögeleri köşeli parantezler " " içinde yazacağız. Şimdi vereceğimiz örnekleri isterseniz python komut satırında deniyelim. IDLE'de biraz yavaş olabilir. İlk listemizi oluşturalım; >>>ilk_listemiz = Hepsini görmek için tıklayın... Her zamanki gibi karakter dizilerini tırnak içinde, sayıları ise normal yazıyoruz. Şimdi komut satırına; >>>ilk_listemiz Hepsini görmek için tıklayın... yazıyoruz ve ilk_listemiz adlı listenin öğeleri ekrana yazılıyor. Listenin öğe sayısına, 6. konuda öğrendiğimiz len fonksiyonu ile bakabiliriz; >>>len Hepsini görmek için tıklayın... Listeye öğe ekleme, öğe çıkarma gibi işlemleri python'da bazı metotlar yardımıyla yapıyoruz. Bunlar append, insert, extend, remove, pop, index, sort, reverse, count... APPEND Oluşturduğumuz listeye yeni bir öğe eklemek için append metodunu kullanıyoruz. Saten append'ın türkçe karşılığı "eklemek" tir. Şimdi hemen bir örnek yapalım; >>>ilk_listemiz. append Hepsini görmek için tıklayın... Burada dikkat etmemiz gereken şey; liste tanımlarken köşeli parantez kullanıyorduk. Ancak listeye ekleme, çıkarma vs. gibi işlemler yaparken normal parantez kullanıyoruz. append metotunu listeminizin adını yazdıktan sonra nokta "." koyarak kullanıyoruz. Aynı örnekte olduğu gibi. Ancak append metotu ile sadece 1 tane öğe ekleyebiliyoruz. Yani 2. bir öğe eklemek istersek tekrar aynı komutu yazmalıyız. Ve öğeyi sonuna değilde listenin belirli bir yerine eklemek istersek başka bir metot kullanıyoruz. Bu metotların hepsini göreceğiz ama şimdi python'da liste öğelerini sıralamayı görelim; Python listenin ilk öğesini 0'dan başlatır. Yani "ilk_listemiz" adlı listede ilk öğeye "0'ıncı öğe" denir. Yani "wardom" listemizde 0. öğe. Bunu test edelim şimdi; ilk_listemiz Hepsini görmek için tıklayın... bu komutu vererek 0. öğemizin ne olduğunu görebiliriz. Python liste öğelerini numaralandırırken 0'dan başlar. Sayarken ise 1'den başlar. Yani len komutunu verdiğimizde saymaya 1 den başlıyacaktır. Bu komutu verdiğimizde 5 çıktısını alacağız. Çünkü listemizde 5 tane öğe bulunuyor. Galiba anlaşıldı. Şimdi diğer metotumuza geçelim: INSERT append metotunu anlatırken bahsetmiştim. Listenin belirli bir yerine öğe eklerken insert metotunu kullanıyoruz. insert'ün türkçe karşılığı "yerleştirmek" tir. Şimdi listemizin 1. sırasına (dikkat edin 1. sırasına, 0. sırasına değil) "python" kelimesini yerleştirelim; ilk_listemiz. insert(1, "python") Hepsini görmek için tıklayın... Şimdi son duruma bakalım; ilk_listemiz Hepsini görmek için tıklayın... çıktısını aldık. Dikkat ettiyseniz "python" kelimesini ilk sıraya değil yani 0. sıraya değil, 1. sıraya ekledi. Şimdi 0. sıraya "Istanbul" kelimesini ekliyelim; ilk_listemiz. insert(0, "Istanbul") Hepsini görmek için tıklayın... Son duruma bakalım; ilk_listemiz Hepsini görmek için tıklayın... 0. sıraya ekleyince ilk sıraya ekledi. Sanırım insert'te anlaşıldı. Şimdi diğer metotumuz extend metotuna geçelim; EXTEND Türkçe'de "genişletmek, uzatmak" anlamına geliyor. Bu metot ile 2 listeyi birleştirebiliyoruz. Şimdi yeni bir liste daha tanımlayalım; ikinci_listemiz = Hepsini görmek için tıklayın... şimdi iki listeyi tek listede birleştirelim; ilk_listemiz. extend Hepsini görmek için tıklayın... Son duruma bakalım; ilk_listemiz Hepsini görmek için tıklayın... listemizin son hali bu. 2 listeyi "ilk_listemiz" adlı listede birleştirdik. Aynı işlemi toplama işleci kullanarakta yapabiliriz; ilk_listemiz = ilk_listemiz + ikinci_listemiz Hepsini görmek için tıklayın... Sanırım anladık. Şimdi remove metotuna geçelim. REMOVE Türkçe'de "çıkarmak, silmek" anlamına geliyor. Tahmin edeceğiniz gibi bu metotla listeden öğe silebiliyoruz; ilk_listemiz. remove Hepsini görmek için tıklayın... Bu komutla listemizden "Bursa" öğesini çıkartıyoruz. Eğer listede birden fazla "Bursa" öğesi olsaydı python bulduğu ilk "Bursa" öğesini silecekti. POP PARÇACIĞI Türkçe'de "fırlatmak, atmak, aniden açılmak" anlamına geliyor. "pop up" lardan hatırlarsınız bu kelimeyi. Bu metodumuzda listeden öğe çıkarmaya yarıyor. Ancak bu metodu öğelerin numarasına göre kullanıyoruz. Yani ilk öğeyi çıkarmak istersek; ilk_listemiz. pop(0) Hepsini görmek için tıklayın... komutunu veriyoruz. Bu komut listeden hem ilk öğeyi çıkartıyor hem de çıkardığı öğeyi ekrana yazıyor. INDEX Diyelim ki "Inspired174" öğesinin listede kaçıncı sırada olduğunu merak ediyoruz. Bu durumda; ilk_listemiz. index("Inspired174) Hepsini görmek için tıklayın... komutunu kullanıcaz ve "Inspired174" öğesinin kaçıncı sırada olduğunu öğreneceğiz. SORT Listemizi alfabetik sıraya dizmek istediğimizde ise sort metotunu kullanıcaz. ilk_listemiz. sort Hepsini görmek için tıklayın... REVERSE Bu metot ise listedeki öğelerin sırasını ters yüz etmeye yarar; ilk_listemiz. reverse Hepsini görmek için tıklayın... COUNT Bu metotu ise liste içinde bir öğenin kaç kere geçtiğini öğrenmek için kullanırız; ilk_listemiz. count Hepsini görmek için tıklayın... Şimdi öğrendiklerimizi tekrarlıyalım; Listeyi köşeli parantez ile oluşturuyoruz: liste = Listeye append ve insert ile yeni öğe ekliyoruz: liste. append , liste. insert Listelerimizi extend ile birleştiriyoruz: liste. extend Listemizden remove ve pop ile öğe çıkartıyoruz: liste. remove , liste. pop Listemizde öğe sayısı için: liste. index Listemizdeki öğeleri alfabetik sıraya dizmek için: liste. sort Listemizdeki öğelerin sırasını ters yüz etmek için: liste. reverse Listemizdeki öğelerin kaç kez geçtiğini bulmak için: liste. count Diyelim ki listemizdeki öğelerden sadece 3. ve 4. öğeyi görmek istiyoruz; ilk_listemiz Hepsini görmek için tıklayın... Yada 4. öğeye kadar görmek istiyoruz; ilk_listemiz Hepsini görmek için tıklayın... bu komutun bir değişi; ilk_listemiz Hepsini görmek için tıklayın... komutudur ve bu iki komut aynı işlevi görür. DEMETLER Demetler listelere çok benzer. Ama temel fark: listeler üzerinde oynama yapabiliriz ancak demetler üzerinde oynama yapamayız. Demetleri şöyle tanımlıyoruz; ilk_demetimiz = "wardom", "Inspired174", 15, 17 Hepsini görmek için tıklayın... demetleri parantez içindede tanımlayabiliriz; ikinci_demetimiz = ("wardom", "Inspired174", 15, 17) Hepsini görmek için tıklayın... bu iki komutta demet tanımlamamızı sağlar. Peki boş bir demet nasıl tanımlarız? bos_demet = Hepsini görmek için tıklayın... ya tek öğeli bir demet? İşte bu sandığımız kadar basit değil; tek_demet = Hepsini görmek için tıklayın... Biraz garip gelebilir ama mantığı şu: eğer öğenin yanına "virgül" koymazsak python bunu karakter dizisi olarak tanımlayacaktır. Yani normal bir değişken tanımlamış gibi olacağız. Bu yaptığımız işlemlere yani demet oluşturmaya demetleme adı veriliyor. Şimdi isterseniz demet çözme yapalım; Önce bir demetleme yapalım; wardom = "user", "yonetici", "clone" Hepsini görmek için tıklayın... Şimdi demeti çözelim; a, b, c = wardom Hepsini görmek için tıklayın... Şimdi komut satırına a yazarsak, "user" öğesi; b yazarsak, "yonetici" öğesi; c yazarsak, "clone" öğesi çıkacaktır. Dikkat etmemiz gereken nokta ise eşittir işaretinin sol tarafına demetteki öğe kadar değişken girmektir. Peki listeler varken bu demetler ne işimize yarar? Demetlerde değiştirme şansımız olmadığı için listelere göre daha güvenilirdir. Yani yanlışlıkla değiştirmek istemediğiniz veriler içeren listeler hazırlamak istiyorsanız demetleri kullanabilirsiniz. Ayrıca demetler listelere göre daha hızlı çalışır. SÖZLÜKLER Bir örnekle başlıyalım isterseniz; ilk_sozluk = Hepsini görmek için tıklayın... Gördüğünüz gibi listeleri küme paranteziyle kullandık. Ayrıca dikkat ettiyseniz ":" işaretini kullandık. Şimdi şöyle: "elma" bir anahtardır, "meyve" ise bu anahtarın değeridir. Yani elmanın bir meyve olduğunu gösteriyor. Python'da sözlük "anahtar" ve "değer" arasında bağ kuran bir veri tipidir. Nerde kullanabiliriz bu sözlükleri? Mesela bir adres veya telefon defteri yazmak istediğimizde bu veri tipini kullanacağız. Hemen bir örnek yapalım; telefon_defteri = Hepsini görmek için tıklayın... Arkadaşlar burada iki nokta üst üste ve virgülleri nerede, nasıl kullandığımıza dikkat edin. Şimdi şu komutu verelim; telefon_defteri Hepsini görmek için tıklayın... Bu komutta "Ahmet" anahtarının karşısında hangi değer varsa onu ekrana yazacaktır. Dikkat ettiyseniz sözlükten öğe çağırırken köşeli parantez kullanıyoruz. Dikkat etmemiz gereken başka bir nokta ise öğeleri sadece "anahtar" göre çağırabiliriz. "değer" i yazıp anahtarı çağıramayız. Sözlüğümüze yeni bir öğe eklemek istersek; telefon_defteri = "05548795263" Hepsini görmek için tıklayın... veya bir öğenin değerini değiştirmek istiyoruz; telefon_defteri = "05428745695" Hepsini görmek için tıklayın... eğer silmek istersek; del telefon_defteri Hepsini görmek için tıklayın... Bütün öğeleri silmek istersek; telefon_defteri. clear Hepsini görmek için tıklayın... burada clear adlı bir metotu kullandık. Sözlüklerin başka metotlarıda vardır. Bunlardan en önemlileri keys ve values metotlarıdır. keys metodu sözlükteki anahtarları, values ise değerleri verir; telefon_defteri. keys Hepsini görmek için tıklayın... bütün anahtarlar çıkacaktır. telefon_defteri. values Hepsini görmek için tıklayın... bütün değerler çıkacaktır. gelin IDLE'yi açalım ve bir hava durumu programı yazalım; Eğer sadece 3 tane şehirin hava durumu ile ilgili bilgisini vereceksek bu yöntemi kullabiliriz. Ancak 81 tane ilimiz var. Bunları daha pratik bir yöntemle yapmak istersek sözlükleri kullanacağız; İlk önce kullanıcıya sorumuzu sorduk ve ardından "cevap" adında bir sözlük tanımladık. Kullanıcı anahtar kelimelerden birini girerse karşısına değer gelicek. Burada get metodunuda kullandık. print cevap. get Hepsini görmek için tıklayın... burada "soru" adlı değişken değerinin varolup olmadığını sorguluyoruz. Eğer kullanıcının girdiği kelime sözlükte bir "anahtar" ise bu anahtarın değeri ekrana yazılıyor. Eğer kullanıcının girdiği kelime sözlükte anahtar olarak bulunmuyorsa "Bu sehir bulunmamaktadir..." çıktısı veriyoruz. if yerine sözlük kullanmanın yararları: Daha az kodla daha çok iş yaparız. Daha hızlı bir şekilde veri sorgulamamıza imkan sağlar. Kodların az yer kaplaması sayesinde bakımıda kolay olur. Daha pratiktir. Bu dersimizde burada bitmiştir arkadaşlar. İyi forumlar... Bir teşekkür yeter :wub: