[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-python-veri-yapilari-liste-sozluk-ve-set-ile-pratik-ornekler":3},{"dataItem":4,"heading":36,"metaData":38,"schema":81},["Reactive",5],{"id":6,"title":7,"summary":8,"content":9,"seo_title":10,"seo_description":11,"seo_keywords":12,"slug":13,"createdAt":14,"updatedAt":14,"blog_categories":15,"authors":19,"image":24,"thumb":25,"image_webp":26,"thumb_webp":27,"rating":28,"heading_title":7,"heading_sub_title":17,"readingTime":29,"url":34,"comments":35,"meta_cover":24},38914,"Python Veri Yapıları: Liste, Sözlük ve Set ile Pratik Örnekler","Bu makalede Python'un yerleşik veri yapıları listeler, sözlükler ve setlerin temel özellikleri, kullanım örnekleri ve performans açısından karşılaştırmaları pratik kod örnekleriyle açıklanıyor.","\u003Ch2>Giriş\u003C/h2>\n\u003Cp>Python Veri Yapıları—listeler, sözlükler ve setler—sık kullanılan, yerleşik koleksiyon tipleridir. Her biri farklı gereksinimler için tasarlanmıştır: sıralı depolama, anahtar–değer eşleştirmesi ve benzersizlik/üye testi gibi. Aşağıda her yapının ne zaman tercih edileceği, pratik örnekler, dikkat edilmesi gereken noktalar ve basit performans ölçümleri yer alır. Daha fazla teknik detay için Python'ın resmi dokümantasyonuna bakabilirsiniz: \u003Ca href=\"https://docs.python.org/tr/3.13/tutorial/datastructures.html\">Python Veri Yapıları (Tutorial)\u003C/a> ve \u003Ca href=\"https://docs.python.org/tr/3.12/library/stdtypes.html\">Yerleşik Türler — stdtypes\u003C/a>.\u003C/p>\n\n\u003Ch3>Hızlı Karşılaştırma\u003C/h3>\n\u003Ctable>\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth>Yapı\u003C/th>\n      \u003Cth>Temel Özellik\u003C/th>\n      \u003Cth>Tipik Kullanım\u003C/th>\n    \u003C/tr>\n  \u003C/thead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>Liste (list)\u003C/td>\n      \u003Ctd>Sıralı, değiştirilebilir, yinelenen elemanlara izin verir\u003C/td>\n      \u003Ctd>Sıralama, indeksleme, kuyruğa/stack'e benzer işlemler\u003C/td>\n    \u003C/tr>\n    \u003Ctr>\n      \u003Ctd>Sözlük (dict)\u003C/td>\n      \u003Ctd>Anahtar–değer eşleştirmesi; anahtar bazlı erişim\u003C/td>\n      \u003Ctd>Hızlı arama, yapılandırılmış veriler, lookup tabloları\u003C/td>\n    \u003C/tr>\n    \u003Ctr>\n      \u003Ctd>Set (set)\u003C/td>\n      \u003Ctd>Sırasız, benzersiz elemanlar; küme işlemleri\u003C/td>\n      \u003Ctd>Üyelik testi, benzersizlik, küme mantığı (birleşim, kesişim)\u003C/td>\n    \u003C/tr>\n  \u003C/tbody>\n\u003C/table>\n\n\u003Ch3>Listeler — Ne zaman ve nasıl kullanılır?\u003C/h3>\n\u003Cp>Listeler sıralı koleksiyonlar için uygundur. Öğelere indeks ile hızlı erişim, sıralama ve dilimleme (slice) gibi işlemler yapılabilir. Aşağıda temel kullanım örnekleri bulunmaktadır.\u003C/p>\n\n\u003Cblockquote>\nnumbers = [1, 2, 3, 4]\u003Cbr>\nnumbers.append(5)\u003Cbr>\nnumbers.insert(2, 99)\u003Cbr>\nlast = numbers.pop()  # sondaki elemanı çıkarır\u003Cbr>\nnumbers[1] = 10\u003Cbr>\nsquares = [x*x for x in numbers]\n\u003C/blockquote>\n\n\u003Cp>Önemli noktalar:\u003C/p>\n\u003Cul>\n  \u003Cli>Liste dilimleme ve comprehension'lar, kısa ve okunaklı veri dönüşümleri sağlar.\u003C/li>\n  \u003Cli>Liste yöntemleri (append, extend, insert, pop, remove, sort, reverse) sık kullanılır; detaylar için Python dokümantasyonundaki ilgili bölüme bakın: \u003Ca href=\"https://docs.python.org/tr/3.13/tutorial/datastructures.html#more-on-lists\">Listeler — Python dokümantasyonu\u003C/a>.\u003C/li>\n\u003C/ul>\n\n\u003Ch3>Sözlükler — Anahtar/değer eşleştirmesi\u003C/h3>\n\u003Cp>Sözlükler (dict) anahtar–değer çiftlerini saklamak için kullanılır. Anahtarlar genellikle hash'lenebilir (değişmez) türlerdir; bu sayede anahtar bazlı erişim verimlidir.\u003C/p>\n\n\u003Cblockquote>\nperson = {\"ad\": \"Ayşe\", \"yaş\": 30}\u003Cbr>\nperson[\"şehir\"] = \"İstanbul\"\u003Cbr>\nage = person.get(\"yaş\")  # anahtar yoksa None döner veya varsayılan verilir\u003Cbr>\nfor k, v in person.items():\u003Cbr>\n    print(k, v)\n\n# Python 3.9 ve sonrası: sözlük birleştirme\u003Cbr>\n# merged = dict1 | dict2\n\u003C/blockquote>\n\n\u003Cp>Sözlüklerle ilgili dikkat edilmesi gerekenler:\u003C/p>\n\u003Cul>\n  \u003Cli>Anahtar olarak kullanılan nesneler hashlenebilir olmalıdır (ör. str, int, tuple).\u003C/li>\n  \u003Cli>Sözlük görünümleri (keys(), values(), items()) gerçek kopya değil, dinamik görünüm sağlar; yine belgelere bakabilirsiniz: \u003Ca href=\"https://docs.python.org/tr/3.12/library/stdtypes.html#mapping-types-dict\">dict — stdtypes\u003C/a>.\u003C/li>\n\u003C/ul>\n\n\u003Ch3>Setler — Benzersizlik ve küme işlemleri\u003C/h3>\n\u003Cp>Set, tekrarlı elemanları otomatik olarak çıkarır ve üyelik testleri ile küme işlemleri için uygundur.\u003C/p>\n\n\u003Cblockquote>\nunique = set([1, 2, 2, 3])  # -> {1, 2, 3}\u003Cbr>\nunique.add(4)\u003Cbr>\nunique.discard(2)\u003Cbr>\nif 3 in unique:\u003Cbr>\n    print(\"3 var\")\n\n# Küme işlemleri\u003Cbr>\na = {1,2,3}\u003Cbr>\nb = {2,3,4}\u003Cbr>\nunion = a | b\u003Cbr>\nintersection = a & b\u003Cbr>\ndifference = a - b\n\u003C/blockquote>\n\n\u003Cp>Set kullanırken:\u003C/p>\n\u003Cul>\n  \u003Cli>Set elemanları hashlenebilir olmalıdır; bu nedenle list gibi değiştirilebilir türler doğrudan eklenemez (TypeError oluşur).\u003C/li>\n  \u003Cli>Setler sırasızdır; elemanların depolandığı sıra garantilenmez.\u003C/li>\n\u003C/ul>\n\n\u003Ch3>Performans karşılaştırması ve ölçüm\u003C/h3>\n\u003Cp>Genel kural olarak, anahtar veya üyelik aramaları söz konusu olduğunda sözlükler ve setler listeye göre daha uygundur. Listeler ise sıralı veri ve indeksleme gerektiren durumlar için uygundur. Bu davranışın detayları ve nedenleri Python belgelerinde yer almaktadır; daha fazla bilgi için bakınız: \u003Ca href=\"https://docs.python.org/tr/3.13/tutorial/datastructures.html\">Python Veri Yapıları\u003C/a>.\u003C/p>\n\n\u003Cp>Aşağıda listede ve sette üyelik testini karşılaştırmak için basit bir \u003Cem>timeit\u003C/em> örneği var. Bu örneği kendi verinizle çalıştırarak farklı büyüklükler için karşılaştırma yapabilirsiniz.\u003C/p>\n\n\u003Cblockquote>\nimport timeit\nsetup = \"lst = list(range(1000000)); s = set(lst)\"\nstmt_list = \"999999 in lst\"\nstmt_set = \"999999 in s\"\nprint(timeit.timeit(stmt=stmt_list, setup=setup, number=1000))\nprint(timeit.timeit(stmt=stmt_set, setup=setup, number=1000))\n\u003C/blockquote>\n\n\u003Cp>Bu kodu çalıştırdığınızda genelde set üzerinde yapılan üyelik testlerinin daha hızlı olduğunu görürsünüz; ancak mutlak süreler veri boyutuna, Python sürümüne ve donanımınıza bağlı olarak değişir. Kendi senaryonuz için mutlaka ölçüm yapın.\u003C/p>\n\n\u003Ch3>Pratik ipuçları ve kurallar\u003C/h3>\n\u003Cul>\n  \u003Cli>Eğer koleksiyonda aynı öğeden birden fazla olabilir ve sıra önemliyse \u003Cstrong>list\u003C/strong> kullanın.\u003C/li>\n  \u003Cli>Eğer benzersizlik ve hızlı üyelik testi gerekiyorsa \u003Cstrong>set\u003C/strong> daha uygundur.\u003C/li>\n  \u003Cli>Anahtar–değer erişimi gerekiyorsa \u003Cstrong>dict\u003C/strong> tercih edin.\u003C/li>\n  \u003Cli>Tek satırda filtreleme veya dönüştürme için comprehension yapıları hem okunaklı hem etkilidir.\u003C/li>\n  \u003Cli>Büyük veri ve sık arama durumlarında kendi verinizi temsil eden benchmarklar hazırlayın; genel kurallar her zaman en iyi sonucu vermez.\u003C/li>\n\u003C/ul>\n\n\u003Ch3>Dönüşümler ve birlikte kullanım örnekleri\u003C/h3>\n\u003Cp>Koleksiyonlar arasında sık dönüşüm yapılır. Örnekler:\u003C/p>\n\n\u003Cblockquote>\n# Bir listeden benzersiz eleman sayısı\nuniq_count = len(set(my_list))\n\n# Sözlüğün anahtarlarını listeye almak\nkeys = list(my_dict)\n\n# İki listeden fark/ortak eleman bulma\nset_a = set(list_a)\nset_b = set(list_b)\ncommon = set_a & set_b\n\u003C/blockquote>\n\n\u003Ch3>Yaygın hatalar ve dikkat edilmesi gerekenler\u003C/h3>\n\u003Cul>\n  \u003Cli>Set veya dict anahtarı olarak değiştirilebilir (mutable) nesneler kullanmaya çalışmak TypeError ile sonuçlanır. Bu durumda tuple veya frozenset gibi hashlenebilir karşılıklar kullanılabilir.\u003C/li>\n  \u003Cli>Setlerin sırasız olduğunu unutmayın; sıralama gerekiyorsa set -> list -> sort adımları gerekebilir.\u003C/li>\n  \u003Cli>Sözlüğün görünüm nesnelerine (keys(), items()) doğrudan referans verildiğinde, temel sözlük değişirse görünüm de güncellenir—buna dikkat edin.\u003C/li>\n\u003C/ul>\n\n\u003Ch3>Nasıl test etmelisiniz: kısa kontrol listesi\u003C/h3>\n\u003Cul>\n  \u003Cli>1) Örneğinizi temsil eden gerçek veri örneğiyle test hazırlayın.\u003C/li>\n  \u003Cli>2) timeit veya benzeri araçlarla tipik işlemleri ölçün.\u003C/li>\n  \u003Cli>3) Okunabilirlik ve bakım kolaylığı performansla dengelenmelidir.\u003C/li>\n  \u003Cli>4) Elde ettiğiniz sonuçları farklı Python sürümlerinde test edin (ör. 3.9, 3.12, 3.13 farkları olabilir).\u003C/li>\n\u003C/ul>\n\n\u003Chr>\n\n\u003Ch3>Kaynaklar ve daha fazla okuma\u003C/h3>\n\u003Cp>Resmi dokümantasyon en güvenilir referanstır. Aşağıdaki kaynaklar makaledeki kavramların dayanağını sağlar:\u003C/p>\n\u003Cul>\n  \u003Cli>\u003Ca href=\"https://docs.python.org/tr/3.13/tutorial/datastructures.html\">5. Veri Yapıları — Python 3.13.11 belgelendirmesi\u003C/a> (tutorial)\u003C/li>\n  \u003Cli>\u003Ca href=\"https://docs.python.org/tr/3.12/library/stdtypes.html\">Yerleşik Türler — Python 3.12.13 belgelendirmesi\u003C/a> (stdtypes)\u003C/li>\n\u003C/ul>\n\n\u003Ch3>Özet\u003C/h3>\n\u003Cp>Python Veri Yapıları arasında tercih yaparken amacınızı (sıra, benzersizlik, anahtar–değer eşleştirmesi) ve performans gereksinimlerinizi göz önünde bulundurun. Listeler sıralı veri için, sözlükler anahtar–değer eşlemeleri için ve setler benzersiz elemanlar ile küme işlemleri için uygundur. Kendi yükünüzü ölçmek her zaman en sağlıklı yaklaşımdır.\u003C/p>","Python Veri Yapıları — Liste, Sözlük ve Set: Örnekler ve Kar","Python veri yapıları (listeler, sözlükler, setler) arasındaki temel farkları, kullanım örneklerini ve performans rehberini pratik kod örnekleriyle öğrenin.","Python Veri Yapıları, listeler, sözlükler, set, performans karşılaştırması, kullanım örnekleri","python-veri-yapilari-liste-sozluk-ve-set-ile-pratik-ornekler","2026-10-10T06:51:50.000Z",{"id":16,"title":17,"slug":18},205,"Python Veri Yapıları","python-veri-yapilari",{"id":20,"name":21,"nickname":22,"slug":23},91,"Mert Kılıçoğlu","CodeCraftsman","mert-kilicoglu","/media/blog/b6c7d49dc9fdcffc40d14bcf3923da0c.jpg","/media/blog/b6c7d49dc9fdcffc40d14bcf3923da0c_thumb.jpg","/media/blog/b6c7d49dc9fdcffc40d14bcf3923da0c.webp","/media/blog/b6c7d49dc9fdcffc40d14bcf3923da0c_thumb.webp",null,{"minutes":30,"wordCount":31,"imageCount":32,"formatted":33},5,808,0,"5 dk okuma süresi","/blog/python-veri-yapilari/python-veri-yapilari-liste-sozluk-ve-set-ile-pratik-ornekler",[],["Reactive",37],{"title":7,"subTitle":17,"image":24},["Reactive",39],{"title":10,"meta":40,"link":75},[41,43,45,48,51,54,57,60,63,66,69,71,73],{"hid":42,"name":42,"content":11},"description",{"hid":44,"name":44,"content":12},"keywords",{"hid":46,"name":46,"content":47},"author","Başlangıç Seviyesi Kod & Snippet Rehberi",{"hid":49,"name":49,"content":50},"robots","index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1",{"hid":52,"property":52,"content":53},"og:type","website",{"hid":55,"property":55,"content":56},"og:title","Başlangıç Kod & Snippet Rehberi | KodÖğreniyorum",{"hid":58,"property":58,"content":59},"og:description","Yeni başlayanlara yönelik kısa kod örnekleri, snippet'ler ve adım adım alıştırmalar. Hızlı uygulamalarla temel programlama mantığını pekiştir.",{"hid":61,"property":61,"content":62},"og:image","https://kodogreniyorum.com/media/blog/b6c7d49dc9fdcffc40d14bcf3923da0c.jpg",{"hid":64,"property":64,"content":65},"og:url","https://kodogreniyorum.com/blog/python-veri-yapilari/python-veri-yapilari-liste-sozluk-ve-set-ile-pratik-ornekler",{"hid":67,"name":67,"content":68},"twitter:card","summary_large_image",{"hid":70,"name":70,"content":56},"twitter:title",{"hid":72,"name":72,"content":59},"twitter:description",{"hid":74,"name":74,"content":62},"twitter:image",[76,78],{"rel":77,"href":65},"canonical",{"rel":79,"href":80},"amphtml","https://amp.kodogreniyorum.com/blog/python-veri-yapilari/python-veri-yapilari-liste-sozluk-ve-set-ile-pratik-ornekler",["Reactive",82],{"@context":83,"@graph":84},"https://schema.org",[85,98],{"@type":86,"headline":10,"image":62,"author":87,"publisher":90,"datePublished":14,"dateModified":14,"mainEntityOfPage":96,"description":11},"BlogPosting",{"@type":88,"name":21,"url":89},"Person","https://kodogreniyorum.com/yazarlar/mert-kilicoglu",{"@type":91,"name":47,"logo":92},"Organization",{"@type":93,"url":94,"width":95,"height":95},"ImageObject","https://kodogreniyorum.com/img/icons/favicon.png",32,{"@type":97,"@id":65},"WebPage",{"@type":99,"itemListElement":100},"BreadcrumbList",[101,106,110,113],{"@type":102,"position":103,"name":104,"item":105},"ListItem",1,"Ana Sayfa","https://kodogreniyorum.com",{"@type":102,"position":107,"name":108,"item":109},2,"Blog","https://kodogreniyorum.com/blog",{"@type":102,"position":111,"name":17,"item":112},3,"https://kodogreniyorum.com/blog/python-veri-yapilari",{"@type":102,"position":114,"name":7,"item":65},4]