{"id":43441,"date":"2026-07-19T08:00:54","date_gmt":"2026-07-19T05:00:54","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=43441"},"modified":"2026-07-19T08:01:14","modified_gmt":"2026-07-19T05:01:14","slug":"pythonda-filter-fonksiyonunu-kullanma-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/","title":{"rendered":"Python&#8217;da Filter Fonksiyonunu Kullanma Rehberi"},"content":{"rendered":"<h2>Python&#8217;da Filter Fonksiyonunu Kullanma Rehberi<\/h2>\n<p>Python, veri i\u015fleme ve manip\u00fclasyonu i\u00e7in zengin bir dizi yerle\u015fik fonksiyon sunar. Bu fonksiyonlar, kodu daha okunabilir, verimli ve Pythonik hale getirmeye yard\u0131mc\u0131 olur. Bu g\u00fc\u00e7l\u00fc ara\u00e7lardan biri de <code>filter()<\/code> fonksiyonudur. <code>filter()<\/code>, belirli bir ko\u015fulu kar\u015f\u0131layan \u00f6\u011feleri bir koleksiyondan (iterable) se\u00e7mek i\u00e7in kullan\u0131lan, y\u00fcksek dereceli bir fonksiyondur. \u00d6zellikle b\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken veya karma\u015f\u0131k filtreleme mant\u0131klar\u0131n\u0131 uygulamak istedi\u011finizde, <code>filter()<\/code> fonksiyonu size zaman ve kod sat\u0131r\u0131 kazand\u0131rabilir. Bu makalede, <code>filter()<\/code> fonksiyonunun ne oldu\u011funu, nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131, farkl\u0131 kullan\u0131m senaryolar\u0131n\u0131, performans ipu\u00e7lar\u0131n\u0131 ve di\u011fer Python yap\u0131lar\u0131yla kar\u015f\u0131la\u015ft\u0131rmas\u0131n\u0131 ayr\u0131nt\u0131l\u0131 olarak inceleyece\u011fiz. Amac\u0131m\u0131z, <code>filter()<\/code> fonksiyonunu Python projelerinizde etkin bir \u015fekilde kullanabilmeniz i\u00e7in kapsaml\u0131 bir rehber sunmakt\u0131r.<\/p>\n<h3>Filter Fonksiyonu Nedir?<\/h3>\n<p><code>filter()<\/code> fonksiyonu, bir koleksiyon (liste, demet, k\u00fcme, dize vb.) i\u00e7indeki \u00f6\u011feleri belirli bir kurala g\u00f6re filtrelemek i\u00e7in tasarlanm\u0131\u015ft\u0131r. Bu kural, bir fonksiyon taraf\u0131ndan tan\u0131mlan\u0131r ve her \u00f6\u011fe i\u00e7in do\u011fru (True) veya yanl\u0131\u015f (False) bir de\u011fer d\u00f6nd\u00fcr\u00fcr. E\u011fer fonksiyon bir \u00f6\u011fe i\u00e7in <code>True<\/code> d\u00f6nd\u00fcr\u00fcrse, o \u00f6\u011fe filtrelenmi\u015f sonucun bir par\u00e7as\u0131 olur; <code>False<\/code> d\u00f6nd\u00fcr\u00fcrse, \u00f6\u011fe atlan\u0131r. <code>filter()<\/code> fonksiyonu, fonksiyonel programlama paradigmalar\u0131n\u0131n Python&#8217;daki bir yans\u0131mas\u0131d\u0131r ve <code>map()<\/code> ve <code>reduce()<\/code> (functools mod\u00fcl\u00fcnde bulunur) gibi di\u011fer fonksiyonlarla birlikte s\u0131kl\u0131kla kullan\u0131l\u0131r. Temel amac\u0131, bir veri ak\u0131\u015f\u0131ndan istenmeyen \u00f6\u011feleri eleyerek sadece ilgili olanlar\u0131 korumakt\u0131r.<\/p>\n<p><code>filter()<\/code> fonksiyonu, do\u011frudan filtrelenmi\u015f \u00f6\u011feleri i\u00e7eren bir liste d\u00f6nd\u00fcrmez; bunun yerine bir <code>filter<\/code> nesnesi (bir yineleyici) d\u00f6nd\u00fcr\u00fcr. Bu, \u00f6zellikle \u00e7ok b\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken \u00f6nemli bir performans avantaj\u0131 sa\u011flar, \u00e7\u00fcnk\u00fc t\u00fcm sonu\u00e7lar belle\u011fe ayn\u0131 anda y\u00fcklenmez. \u0130stenirse, bu yineleyici bir liste, demet veya ba\u015fka bir koleksiyon tipine d\u00f6n\u00fc\u015ft\u00fcr\u00fclebilir.<\/p>\n<h3>S\u00f6zdizimi ve Parametreler<\/h3>\n<p><code>filter()<\/code> fonksiyonunun s\u00f6zdizimi olduk\u00e7a basittir:<\/p>\n<p><code>filter(fonksiyon, yinelenebilir)<\/code><\/p>\n<p>Burada:<br \/>\n&#8211; <code>fonksiyon<\/code>: Her bir \u00f6\u011fe i\u00e7in \u00e7a\u011fr\u0131lacak bir fonksiyondur. Bu fonksiyon, yinelenebilir koleksiyondaki tek bir \u00f6\u011feyi arg\u00fcman olarak al\u0131r ve bir boole de\u011feri (True veya False) d\u00f6nd\u00fcrmelidir. E\u011fer bu parametre <code>None<\/code> olarak verilirse, yinelenebilir koleksiyondaki t\u00fcm &#8220;yanl\u0131\u015f&#8221; (falsy) \u00f6\u011feler (yani <code>False<\/code>, <code>0<\/code>, <code>None<\/code>, <code>''<\/code>, <code>[]<\/code>, <code>{}<\/code>, <code>()<\/code>) filtrelenir ve sadece &#8220;do\u011fru&#8221; (truthy) \u00f6\u011feler d\u00f6nd\u00fcr\u00fcl\u00fcr.<br \/>\n&#8211; <code>yinelenebilir<\/code>: \u00dczerinde filtreleme yap\u0131lacak olan koleksiyondur (liste, demet, dize, k\u00fcme, s\u00f6zl\u00fck anahtarlar\u0131, yineleyici vb.).<\/p>\n<p>Fonksiyon parametresi i\u00e7in genellikle bir <code>lambda<\/code> fonksiyonu veya \u00f6nceden tan\u0131mlanm\u0131\u015f bir fonksiyon kullan\u0131l\u0131r. <code>lambda<\/code> fonksiyonlar\u0131, tek sat\u0131rl\u0131k basit ko\u015fullar i\u00e7in olduk\u00e7a pratiktir ve kodu daha kompakt hale getirir.<\/p>\n<h3>Temel Kullan\u0131m \u00d6rnekleri<\/h3>\n<p><code>filter()<\/code> fonksiyonunun nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 anlamak i\u00e7in birka\u00e7 temel \u00f6rne\u011fe bakal\u0131m.<\/p>\n<h4>\u00d6rnek 1: \u00d6nceden Tan\u0131mlanm\u0131\u015f Bir Fonksiyon ile Kullan\u0131m<\/h4>\n<p>Tek say\u0131lar listesinden \u00e7ift say\u0131lar\u0131 ay\u0131klamak istedi\u011fimizi varsayal\u0131m. \u00d6nce \u00e7ift say\u0131lar\u0131 kontrol eden bir fonksiyon tan\u0131mlayabiliriz.<\/p>\n<pre><code class=\"language-python\">def cift_mi(sayi):\n    return sayi % 2 == 0\n\nsayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n\n<h2>filter fonksiyonunu kullanarak \u00e7ift say\u0131lar\u0131 bulma<\/h2>\ncift_sayilar_iteratoru = filter(cift_mi, sayilar)\n\n<h2>Yineleyiciyi bir listeye d\u00f6n\u00fc\u015ft\u00fcrme<\/h2>\ncift_sayilar_listesi = list(cift_sayilar_iteratoru)\n\nprint(f&quot;Orijinal say\u0131lar: {sayilar}&quot;)\nprint(f&quot;\u00c7ift say\u0131lar: {cift_sayilar_listesi}&quot;)\n<h2>\u00c7\u0131kt\u0131: \u00c7ift say\u0131lar: [2, 4, 6, 8, 10]<\/code><\/pre>\n<\/h2>\n<p>Bu \u00f6rnekte, <code>cift_mi<\/code> fonksiyonu her bir say\u0131y\u0131 kontrol eder. E\u011fer say\u0131 \u00e7iftse <code>True<\/code> d\u00f6nd\u00fcr\u00fcr, bu da o say\u0131n\u0131n filtrelenmi\u015f sonuca dahil edilmesini sa\u011flar.<\/p>\n<h4>\u00d6rnek 2: Lambda Fonksiyonu ile Kullan\u0131m<\/h4>\n<p><code>lambda<\/code> fonksiyonlar\u0131, k\u00fc\u00e7\u00fck, anonim fonksiyonlar tan\u0131mlamak i\u00e7in idealdir ve <code>filter()<\/code> ile birlikte s\u0131kl\u0131kla kullan\u0131l\u0131r. \u00d6nceki \u00f6rne\u011fi <code>lambda<\/code> ile yeniden yazal\u0131m:<\/p>\n<pre><code class=\"language-python\">sayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n\n<h2>lambda fonksiyonu kullanarak \u00e7ift say\u0131lar\u0131 bulma<\/h2>\ncift_sayilar_iteratoru = filter(lambda sayi: sayi % 2 == 0, sayilar)\n\ncift_sayilar_listesi = list(cift_sayilar_iteratoru)\n\nprint(f&quot;\u00c7ift say\u0131lar (lambda ile): {cift_sayilar_listesi}&quot;)\n<h2>\u00c7\u0131kt\u0131: \u00c7ift say\u0131lar (lambda ile): [2, 4, 6, 8, 10]<\/code><\/pre>\n<\/h2>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, <code>lambda<\/code> fonksiyonu sayesinde ayr\u0131 bir fonksiyon tan\u0131mlamaya gerek kalmadan ayn\u0131 i\u015flevi daha k\u0131sa bir \u015fekilde ger\u00e7ekle\u015ftirdik. Bu, basit filtreleme ko\u015fullar\u0131 i\u00e7in olduk\u00e7a yayg\u0131n ve tercih edilen bir y\u00f6ntemdir.<\/p>\n<h4>\u00d6rnek 3: None Parametresi ile Kullan\u0131m<\/h4>\n<p><code>filter()<\/code> fonksiyonuna <code>None<\/code> de\u011feri ge\u00e7irildi\u011finde, yinelenebilir koleksiyondaki &#8220;do\u011fru&#8221; (truthy) de\u011ferleri d\u00f6nd\u00fcr\u00fcr. Yani, <code>False<\/code>, <code>0<\/code>, <code>None<\/code>, bo\u015f dizeler, bo\u015f listeler gibi &#8220;yanl\u0131\u015f&#8221; (falsy) de\u011ferler filtrelenir.<\/p>\n<pre><code class=\"language-python\">degerler = [1, 0, True, False, None, 'hello', '', [], [1, 2], {}, {'a': 1}]\n\n<h2>None ile filter kullan\u0131m\u0131<\/h2>\ndogru_degerler_iteratoru = filter(None, degerler)\n\ndogru_degerler_listesi = list(dogru_degerler_iteratoru)\n\nprint(f&quot;Do\u011fru (truthy) de\u011ferler: {dogru_degerler_listesi}&quot;)\n<h2>\u00c7\u0131kt\u0131: Do\u011fru (truthy) de\u011ferler: [1, True, 'hello', [1, 2], {'a': 1}]<\/code><\/pre>\n<\/h2>\n<p>Bu \u00f6rnek, bir koleksiyondaki &#8220;bo\u015f&#8221; veya &#8220;ge\u00e7ersiz&#8221; kabul edilebilecek \u00f6\u011feleri h\u0131zl\u0131ca temizlemek i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h3>Lambda Fonksiyonlar\u0131 ile Filter Kullan\u0131m\u0131<\/h3>\n<p><code>lambda<\/code> fonksiyonlar\u0131, Python&#8217;da tek bir ifade i\u00e7eren k\u00fc\u00e7\u00fck, anonim fonksiyonlar olu\u015fturman\u0131n h\u0131zl\u0131 bir yoludur. <code>filter()<\/code> fonksiyonu ile birlikte kullan\u0131ld\u0131\u011f\u0131nda, kodun okunabilirli\u011fini art\u0131r\u0131r ve gereksiz fonksiyon tan\u0131mlamalar\u0131ndan ka\u00e7\u0131nmay\u0131 sa\u011flar. Genellikle, filtreleme ko\u015fulu basit oldu\u011funda <code>lambda<\/code> tercih edilir.<\/p>\n<pre><code class=\"language-python\"># Belirli bir uzunluktan uzun kelimeleri filtreleme\nkelimeler = [&quot;elma&quot;, &quot;armut&quot;, &quot;kiraz&quot;, &quot;muz&quot;, &quot;\u00e7ilek&quot;, &quot;\u00fcz\u00fcm&quot;]\nuzunluk_siniri = 4\n\nuzun_kelimeler = list(filter(lambda kelime: len(kelime) &gt; uzunluk_siniri, kelimeler))\nprint(f&quot;Uzun kelimeler: {uzun_kelimeler}&quot;)\n<h2>\u00c7\u0131kt\u0131: Uzun kelimeler: ['armut', 'kiraz', '\u00e7ilek']<\/h2>\n\n<h2>Bir metin listesinden 'a' harfi i\u00e7erenleri filtreleme<\/h2>\nmetinler = [&quot;python&quot;, &quot;java&quot;, &quot;javascript&quot;, &quot;c++&quot;, &quot;go&quot;, &quot;ruby&quot;]\na_icerenler = list(filter(lambda metin: 'a' in metin, metinler))\nprint(f&quot;'a' i\u00e7eren metinler: {a_icerenler}&quot;)\n<h2>\u00c7\u0131kt\u0131: 'a' i\u00e7eren metinler: ['java', 'javascript']<\/h2>\n\n<h2>Pozitif say\u0131lar\u0131 filtreleme<\/h2>\nsayilar = [-5, -2, 0, 1, 3, 7, -10]\npozitif_sayilar = list(filter(lambda x: x &gt; 0, sayilar))\nprint(f&quot;Pozitif say\u0131lar: {pozitif_sayilar}&quot;)\n<h2>\u00c7\u0131kt\u0131: Pozitif say\u0131lar: [1, 3, 7]<\/code><\/pre>\n<\/h2>\n<p><code>lambda<\/code> fonksiyonlar\u0131, \u00f6zellikle karma\u015f\u0131k olmayan tek ko\u015fullu filtrelemelerde kodun daha \u00f6zl\u00fc ve anla\u015f\u0131l\u0131r olmas\u0131n\u0131 sa\u011flar. Ancak, filtreleme mant\u0131\u011f\u0131 daha karma\u015f\u0131k hale geldi\u011finde veya birden fazla ifade gerektirdi\u011finde, ayr\u0131 bir <code>def<\/code> ile tan\u0131mlanm\u0131\u015f normal bir fonksiyon kullanmak genellikle daha iyi bir uygulamad\u0131r. Bu, kodun okunabilirli\u011fini ve bak\u0131m\u0131n\u0131 art\u0131r\u0131r.<\/p>\n<h3>Farkl\u0131 Veri Tiplerini Filtreleme<\/h3>\n<p><code>filter()<\/code> fonksiyonu sadece say\u0131larla de\u011fil, \u00e7e\u015fitli veri tipleriyle ve karma\u015f\u0131k veri yap\u0131lar\u0131yla da kullan\u0131labilir.<\/p>\n<h4>Say\u0131lar\u0131 Filtreleme<\/h4>\n<pre><code class=\"language-python\"># 10 ile 20 aras\u0131ndaki say\u0131lar\u0131 filtreleme\nsayilar = [5, 12, 18, 25, 30, 15, 8]\naralik_sayilar = list(filter(lambda x: 10 &lt;= x &lt;= 20, sayilar))\nprint(f&quot;10-20 aras\u0131ndaki say\u0131lar: {aralik_sayilar}&quot;)\n<h2>\u00c7\u0131kt\u0131: 10-20 aras\u0131ndaki say\u0131lar: [12, 18, 15]<\/h2>\n\n<h2>Asal say\u0131lar\u0131 filtreleme (daha karma\u015f\u0131k bir fonksiyon gerektirir)<\/h2>\ndef asal_mi(n):\n    if n &lt; 2:\n        return False\n    for i in range(2, int(n<em><\/em>0.5) + 1):\n        if n % i == 0:\n            return False\n    return True\n\nsayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 17, 19, 23]\nasal_sayilar = list(filter(asal_mi, sayilar))\nprint(f&quot;Asal say\u0131lar: {asal_sayilar}&quot;)\n<h2>\u00c7\u0131kt\u0131: Asal say\u0131lar: [2, 3, 5, 7, 11, 13, 17, 19, 23]<\/code><\/pre>\n<\/h2>\n<h4>Metinleri Filtreleme<\/h4>\n<pre><code class=\"language-python\"># Belirli bir harfle ba\u015flayan kelimeleri filtreleme\nkelimeler = [&quot;apple&quot;, &quot;banana&quot;, &quot;apricot&quot;, &quot;cherry&quot;, &quot;avocado&quot;]\na_ile_baslayanlar = list(filter(lambda kelime: kelime.startswith('a'), kelimeler))\nprint(f&quot;'a' ile ba\u015flayanlar: {a_ile_baslayanlar}&quot;)\n<h2>\u00c7\u0131kt\u0131: 'a' ile ba\u015flayanlar: ['apple', 'apricot', 'avocado']<\/h2>\n\n<h2>Bo\u015f olmayan dizeleri filtreleme<\/h2>\ndizeler = [&quot;&quot;, &quot;hello&quot;, &quot; &quot;, &quot;world&quot;, &quot;&quot;]\ndolu_dizeler = list(filter(lambda s: s.strip() != '', dizeler))\nprint(f&quot;Dolu dizeler: {dolu_dizeler}&quot;)\n<h2>\u00c7\u0131kt\u0131: Dolu dizeler: ['hello', ' ', 'world']<\/code><\/pre>\n<\/h2>\n<h4>S\u00f6zl\u00fckleri Filtreleme<\/h4>\n<p>S\u00f6zl\u00fckler do\u011frudan <code>filter()<\/code> fonksiyonuna ge\u00e7irildi\u011finde, anahtarlar\u0131 \u00fczerinde i\u015flem yapar. De\u011ferlere g\u00f6re filtreleme yapmak i\u00e7in <code>dict.items()<\/code> veya <code>dict.values()<\/code> kullan\u0131lmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-python\">ogrenciler = {\n    &quot;ali&quot;: 85,\n    &quot;ay\u015fe&quot;: 92,\n    &quot;can&quot;: 78,\n    &quot;deniz&quot;: 65,\n    &quot;elif&quot;: 95\n}\n\n<h2>90 ve \u00fczeri not alan \u00f6\u011frencileri filtreleme (anahtarlar\u0131 d\u00f6nd\u00fcr\u00fcr)<\/h2>\nbasarili_ogrenciler_anahtarlar = list(filter(lambda ogrenci_adi: ogrenciler[ogrenci_adi] &gt;= 90, ogrenciler))\nprint(f&quot;Ba\u015far\u0131l\u0131 \u00f6\u011frenciler (anahtarlar): {basarili_ogrenciler_anahtarlar}&quot;)\n<h2>\u00c7\u0131kt\u0131: Ba\u015far\u0131l\u0131 \u00f6\u011frenciler (anahtarlar): ['ay\u015fe', 'elif']<\/h2>\n\n<h2>90 ve \u00fczeri not alan \u00f6\u011frencileri filtreleme (hem anahtar hem de\u011fer)<\/h2>\nbasarili_ogrenciler_itemlar = dict(filter(lambda item: item[1] &gt;= 90, ogrenciler.items()))\nprint(f&quot;Ba\u015far\u0131l\u0131 \u00f6\u011frenciler (itemlar): {basarili_ogrenciler_itemlar}&quot;)\n<h2>\u00c7\u0131kt\u0131: Ba\u015far\u0131l\u0131 \u00f6\u011frenciler (itemlar): {'ay\u015fe': 92, 'elif': 95}<\/code><\/pre>\n<\/h2>\n<h4>Nesneleri Filtreleme<\/h4>\n<p>Kendi \u00f6zel nesnelerinizi tan\u0131mlad\u0131\u011f\u0131n\u0131zda, bu nesnelerin belirli \u00f6zelliklerine g\u00f6re filtreleme yapabilirsiniz.<\/p>\n<pre><code class=\"language-python\">class Urun:\n    def __init__(self, ad, fiyat, stok):\n        self.ad = ad\n        self.fiyat = fiyat\n        self.stok = stok\n\n    def __repr__(self):\n        return f&quot;Urun(ad='{self.ad}', fiyat={self.fiyat}, stok={self.stok})&quot;\n\nurunler = [\n    Urun(&quot;Laptop&quot;, 1200, 50),\n    Urun(&quot;Mouse&quot;, 25, 200),\n    Urun(&quot;Klavye&quot;, 75, 0),\n    Urun(&quot;Monitor&quot;, 300, 10),\n    Urun(&quot;Webcam&quot;, 50, 0)\n]\n\n<h2>Stokta olan \u00fcr\u00fcnleri filtreleme<\/h2>\nstoktaki_urunler = list(filter(lambda urun: urun.stok &gt; 0, urunler))\nprint(f&quot;Stoktaki \u00fcr\u00fcnler: {stoktaki_urunler}&quot;)\n<h2>\u00c7\u0131kt\u0131: Stoktaki \u00fcr\u00fcnler: [Urun(ad='Laptop', fiyat=1200, stok=50), Urun(ad='Mouse', fiyat=25, stok=200), Urun(ad='Monitor', fiyat=300, stok=10)]<\/h2>\n\n<h2>Belirli bir fiyat\u0131n alt\u0131ndaki \u00fcr\u00fcnleri filtreleme<\/h2>\nucuz_urunler = list(filter(lambda urun: urun.fiyat &lt; 100, urunler))\nprint(f&quot;Ucuz \u00fcr\u00fcnler: {ucuz_urunler}&quot;)\n<h2>\u00c7\u0131kt\u0131: Ucuz \u00fcr\u00fcnler: [Urun(ad='Mouse', fiyat=25, stok=200), Urun(ad='Klavye', fiyat=75, stok=0), Urun(ad='Webcam', fiyat=50, stok=0)]<\/code><\/pre>\n<\/h2>\n<h3>Filter Fonksiyonunun Geri D\u00f6nd\u00fcrd\u00fc\u011f\u00fc De\u011fer<\/h3>\n<p>Yukar\u0131daki \u00f6rneklerde de g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi, <code>filter()<\/code> fonksiyonu do\u011frudan bir liste veya ba\u015fka bir somut koleksiyon d\u00f6nd\u00fcrmez. Bunun yerine, bir <code>filter<\/code> nesnesi d\u00f6nd\u00fcr\u00fcr. Bu nesne, bir yineleyicidir. Yineleyiciler, Python&#8217;da &#8220;tembel de\u011ferlendirme&#8221; (lazy evaluation) prensibini takip eder; yani, de\u011ferler yaln\u0131zca ihtiya\u00e7 duyuldu\u011funda \u00fcretilir.<\/p>\n<pre><code class=\"language-python\">sayilar = [1, 2, 3, 4, 5]\ncift_sayilar_iteratoru = filter(lambda x: x % 2 == 0, sayilar)\n\nprint(f&quot;filter nesnesi: {cift_sayilar_iteratoru}&quot;)\n<h2>\u00c7\u0131kt\u0131: filter nesnesi: &lt;filter object at 0x...&gt;<\/code><\/pre>\n<\/h2>\n<p>Bu yineleyiciyi kullanmak i\u00e7in, onu bir d\u00f6ng\u00fcde gezebilir veya <code>list()<\/code>, <code>tuple()<\/code>, <code>set()<\/code> gibi bir yap\u0131c\u0131 fonksiyonuna ge\u00e7irebilirsiniz:<\/p>\n<pre><code class=\"language-python\"># D\u00f6ng\u00fc ile gezme\nprint(&quot;\u00c7ift say\u0131lar (d\u00f6ng\u00fc ile):&quot;)\nfor sayi in cift_sayilar_iteratoru:\n    print(sayi)\n<h2>\u00c7\u0131kt\u0131:<\/h2>\n<h2>\u00c7ift say\u0131lar (d\u00f6ng\u00fc ile):<\/h2>\n<h2>2<\/h2>\n<h2>4<\/h2>\n\n<h2>D\u0130KKAT: Bir yineleyici t\u00fcketildikten sonra bo\u015fal\u0131r.<\/h2>\n<h2>Yani, yukar\u0131daki d\u00f6ng\u00fcden sonra cift_sayilar_iteratoru bo\u015f olacakt\u0131r.<\/h2>\n<h2>E\u011fer tekrar kullanmak isterseniz, filter'\u0131 tekrar \u00e7a\u011f\u0131rman\u0131z gerekir.<\/h2>\ncift_sayilar_iteratoru = filter(lambda x: x % 2 == 0, sayilar) # Tekrar olu\u015fturuldu\n\n<h2>Listeye d\u00f6n\u00fc\u015ft\u00fcrme<\/h2>\ncift_sayilar_listesi = list(cift_sayilar_iteratoru)\nprint(f&quot;\u00c7ift say\u0131lar (liste): {cift_sayilar_listesi}&quot;)\n<h2>\u00c7\u0131kt\u0131: \u00c7ift say\u0131lar (liste): [2, 4]<\/h2>\n\ncift_sayilar_iteratoru = filter(lambda x: x % 2 == 0, sayilar) # Tekrar olu\u015fturuldu\n<h2>Demete d\u00f6n\u00fc\u015ft\u00fcrme<\/h2>\ncift_sayilar_demeti = tuple(cift_sayilar_iteratoru)\nprint(f&quot;\u00c7ift say\u0131lar (demet): {cift_sayilar_demeti}&quot;)\n<h2>\u00c7\u0131kt\u0131: \u00c7ift say\u0131lar (demet): (2, 4)<\/code><\/pre>\n<\/h2>\n<p>Yineleyicilerin tembel do\u011fas\u0131, \u00f6zellikle \u00e7ok b\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken bellek verimlili\u011fi sa\u011flar. T\u00fcm veriyi belle\u011fe y\u00fcklemek yerine, sadece o an i\u015flenen \u00f6\u011feyi tutar.<\/p>\n<h3>Performans ve Tembel De\u011ferlendirme (Lazy Evaluation)<\/h3>\n<p><code>filter()<\/code> fonksiyonunun yineleyici d\u00f6nd\u00fcrme \u00f6zelli\u011fi, onun en \u00f6nemli performans avantajlar\u0131ndan biridir. &#8220;Tembel de\u011ferlendirme&#8221; olarak bilinen bu yakla\u015f\u0131m, a\u015fa\u011f\u0131daki faydalar\u0131 sa\u011flar:<\/p>\n<p>1.  <strong>Bellek Verimlili\u011fi:<\/strong> \u00d6zellikle milyonlarca veya milyarlarca \u00f6\u011fe i\u00e7eren veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken, <code>filter()<\/code> t\u00fcm filtrelenmi\u015f sonu\u00e7lar\u0131 belle\u011fe ayn\u0131 anda y\u00fcklemek yerine, yaln\u0131zca talep edildi\u011finde birer birer \u00fcretir. Bu, bellek kullan\u0131m\u0131n\u0131 minimumda tutar.<br \/>\n2.  <strong>H\u0131z:<\/strong> T\u00fcm koleksiyonun ba\u015ftan sona i\u015flenmesini beklemek yerine, ihtiya\u00e7 duyulan ilk birka\u00e7 \u00f6\u011feyi hemen alabilirsiniz. \u00d6rne\u011fin, sadece ilk 10 filtrelenmi\u015f \u00f6\u011feye ihtiyac\u0131n\u0131z varsa, <code>filter()<\/code> t\u00fcm koleksiyonu filtrelemek zorunda kalmaz.<br \/>\n3.  <strong>Sonsuz Koleksiyonlarla \u00c7al\u0131\u015fabilme:<\/strong> Teorik olarak sonsuz veri ak\u0131\u015flar\u0131n\u0131 (\u00f6rne\u011fin, bir sens\u00f6rden gelen s\u00fcrekli veri ak\u0131\u015f\u0131) <code>filter()<\/code> ile i\u015fleyebilirsiniz, \u00e7\u00fcnk\u00fc hi\u00e7bir zaman t\u00fcm ak\u0131\u015f\u0131 belle\u011fe almaya \u00e7al\u0131\u015fmaz.<\/p>\n<pre><code class=\"language-python\">import time\n\ndef buyuk_veri_seti_uret(boyut):\n    return range(boyut)\n\nveri_boyutu = 10<em><\/em>7 # 10 milyon eleman\n\n<h2>filter ile tembel de\u011ferlendirme<\/h2>\nstart_time = time.time()\nbuyuk_sayilar_filter = filter(lambda x: x % 7 == 0, buyuk_veri_seti_uret(veri_boyutu))\n<h2>Hen\u00fcz hi\u00e7bir hesaplama yap\u0131lmad\u0131, sadece yineleyici olu\u015fturuldu<\/h2>\nend_time = time.time()\nprint(f&quot;Filter nesnesi olu\u015fturma s\u00fcresi: {end_time - start_time:.6f} saniye&quot;)\n\n<h2>\u0130lk 5 eleman\u0131 \u00e7ekme (hesaplama ba\u015flar)<\/h2>\nilk_bes = []\nfor _ in range(5):\n    try:\n        ilk_bes.append(next(buyuk_sayilar_filter))\n    except StopIteration:\n        break\nprint(f&quot;\u0130lk 5 eleman: {ilk_bes}&quot;)\n<h2>\u00c7\u0131kt\u0131:<\/h2>\n<h2>Filter nesnesi olu\u015fturma s\u00fcresi: 0.00000X saniye (\u00e7ok h\u0131zl\u0131)<\/h2>\n<h2>\u0130lk 5 eleman: [0, 7, 14, 21, 28]<\/h2>\n\n<h2>T\u00fcm elemanlar\u0131 listeye d\u00f6n\u00fc\u015ft\u00fcrme (t\u00fcm hesaplama yap\u0131l\u0131r)<\/h2>\nstart_time = time.time()\ntum_sayilar = list(filter(lambda x: x % 7 == 0, buyuk_veri_seti_uret(veri_boyutu)))\nend_time = time.time()\nprint(f&quot;T\u00fcm elemanlar\u0131 listeye d\u00f6n\u00fc\u015ft\u00fcrme s\u00fcresi: {end_time - start_time:.6f} saniye&quot;)\n<h2>\u00c7\u0131kt\u0131: T\u00fcm elemanlar\u0131 listeye d\u00f6n\u00fc\u015ft\u00fcrme s\u00fcresi: X.XXX saniye (daha uzun)<\/code><\/pre>\n<\/h2>\n<p>Bu \u00f6rnek, <code>filter<\/code> nesnesinin olu\u015fturulmas\u0131n\u0131n neredeyse an\u0131nda ger\u00e7ekle\u015fti\u011fini, as\u0131l hesaplaman\u0131n ise yineleyici t\u00fcketildi\u011finde yap\u0131ld\u0131\u011f\u0131n\u0131 a\u00e7\u0131k\u00e7a g\u00f6stermektedir.<\/p>\n<h3>Filter vs. Liste Anlay\u0131\u015flar\u0131 (List Comprehensions)<\/h3>\n<p>Python&#8217;da <code>filter()<\/code> fonksiyonuna g\u00fc\u00e7l\u00fc bir alternatif de liste anlay\u0131\u015flar\u0131d\u0131r (list comprehensions). Liste anlay\u0131\u015flar\u0131, listeler olu\u015fturmak i\u00e7in daha k\u0131sa ve okunabilir bir s\u00f6zdizimi sunar ve bir\u00e7ok durumda <code>filter()<\/code> ile ayn\u0131 i\u015flevi g\u00f6rebilir.<\/p>\n<pre><code class=\"language-python\">sayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n\n<h2>filter ile \u00e7ift say\u0131lar<\/h2>\ncift_sayilar_filter = list(filter(lambda x: x % 2 == 0, sayilar))\nprint(f&quot;Filter ile: {cift_sayilar_filter}&quot;)\n\n<h2>Liste anlay\u0131\u015f\u0131 ile \u00e7ift say\u0131lar<\/h2>\ncift_sayilar_comprehension = [x for x in sayilar if x % 2 == 0]\nprint(f&quot;Liste anlay\u0131\u015f\u0131 ile: {cift_sayilar_comprehension}&quot;)<\/code><\/pre>\n<p>Her iki y\u00f6ntem de ayn\u0131 sonucu verir. Peki, hangisini ne zaman kullanmal\u0131y\u0131z?<\/p>\n<p><strong>Liste Anlay\u0131\u015flar\u0131n\u0131n Avantajlar\u0131:<\/strong><br \/>\n&#8211;   <strong>Okunabilirlik:<\/strong> Basit filtreleme ko\u015fullar\u0131 i\u00e7in genellikle <code>filter()<\/code> + <code>lambda<\/code> kombinasyonundan daha okunabilirdirler, \u00e7\u00fcnk\u00fc <code>if<\/code> ko\u015fulu d\u00f6ng\u00fc ifadesiyle ayn\u0131 sat\u0131rdad\u0131r.<br \/>\n&#8211;   <strong>Esneklik:<\/strong> Sadece filtreleme de\u011fil, ayn\u0131 zamanda \u00f6\u011feler \u00fczerinde d\u00f6n\u00fc\u015f\u00fcm (map) de yapabilirler. \u00d6rne\u011fin: <code>[x * 2 for x in sayilar if x % 2 == 0]<\/code>.<br \/>\n&#8211;   <strong>Daha Yayg\u0131n Kullan\u0131m:<\/strong> Python toplulu\u011funda \u00e7ok yayg\u0131n olarak kullan\u0131l\u0131r ve bir\u00e7ok geli\u015ftirici i\u00e7in do\u011fal bir Pythonik yakla\u015f\u0131md\u0131r.<\/p>\n<p><strong>Filter Fonksiyonunun Avantajlar\u0131:<\/strong><br \/>\n&#8211;   <strong>Tembel De\u011ferlendirme:<\/strong> Yukar\u0131da bahsedildi\u011fi gibi, yineleyici d\u00f6nd\u00fcrd\u00fc\u011f\u00fc i\u00e7in b\u00fcy\u00fck veri k\u00fcmelerinde bellek verimlili\u011fi ve performans sa\u011flar. Liste anlay\u0131\u015flar\u0131 varsay\u0131lan olarak t\u00fcm sonu\u00e7lar\u0131 belle\u011fe y\u00fckleyen bir liste olu\u015fturur. (Jenerat\u00f6r anlay\u0131\u015flar\u0131 <code>(x for x in iterable if condition)<\/code> ise tembel de\u011ferlendirme yapar ve <code>filter()<\/code>&#8216;a benzer bir yineleyici d\u00f6nd\u00fcr\u00fcr.)<br \/>\n&#8211;   <strong>Karma\u015f\u0131k Fonksiyonlar:<\/strong> Filtreleme ko\u015fulu, ayr\u0131 bir <code>def<\/code> ile tan\u0131mlanm\u0131\u015f karma\u015f\u0131k bir fonksiyon oldu\u011funda <code>filter()<\/code> daha \u015f\u0131k g\u00f6r\u00fcnebilir. <code>[x for x in iterable if my_complex_function(x)]<\/code> de m\u00fcmk\u00fcnd\u00fcr, ancak <code>filter(my_complex_function, iterable)<\/code> bazen daha temiz hissedilebilir.<br \/>\n&#8211;   <strong>Fonksiyonel Programlama Stili:<\/strong> Fonksiyonel programlama stilini benimseyenler i\u00e7in <code>filter()<\/code> daha do\u011fal bir se\u00e7imdir.<\/p>\n<p><strong>\u00d6zetle:<\/strong> \u00c7o\u011fu durumda, \u00f6zellikle k\u00fc\u00e7\u00fck veya orta boyutlu koleksiyonlar ve basit filtreleme ko\u015fullar\u0131 i\u00e7in liste anlay\u0131\u015flar\u0131 tercih edilir. Ancak, \u00e7ok b\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken veya yineleyici tabanl\u0131 bir ak\u0131\u015f i\u015fleme yakla\u015f\u0131m\u0131 benimsedi\u011finizde <code>filter()<\/code> veya jenerat\u00f6r anlay\u0131\u015flar\u0131 daha uygun olabilir.<\/p>\n<h3>Filter vs. D\u00f6ng\u00fcler<\/h3>\n<p><code>filter()<\/code> fonksiyonu ve liste anlay\u0131\u015flar\u0131, geleneksel <code>for<\/code> d\u00f6ng\u00fclerinin yerini alarak kodu daha k\u0131sa ve bazen daha performansl\u0131 hale getirebilir.<\/p>\n<pre><code class=\"language-python\">sayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n\n<h2>Geleneksel for d\u00f6ng\u00fcs\u00fc ile \u00e7ift say\u0131lar<\/h2>\ncift_sayilar_dongu = []\nfor sayi in sayilar:\n    if sayi % 2 == 0:\n        cift_sayilar_dongu.append(sayi)\nprint(f&quot;D\u00f6ng\u00fc ile: {cift_sayilar_dongu}&quot;)<\/code><\/pre>\n<p><code>filter()<\/code> veya liste anlay\u0131\u015flar\u0131, bu t\u00fcr bir d\u00f6ng\u00fcden daha &#8220;Pythonik&#8221; kabul edilir. Neden mi?<\/p>\n<p>&#8211;   <strong>Daha Az Sat\u0131r Kodu:<\/strong> Daha az kod yazarak ayn\u0131 i\u015flevi ger\u00e7ekle\u015ftirirsiniz.<br \/>\n&#8211;   <strong>Okunabilirlik:<\/strong> \u0130yi yaz\u0131lm\u0131\u015f <code>filter()<\/code> veya liste anlay\u0131\u015flar\u0131, neyin yap\u0131ld\u0131\u011f\u0131n\u0131 (yani &#8220;bu koleksiyondan bu ko\u015fulu kar\u015f\u0131layan \u00f6\u011feleri filtrele&#8221;) daha a\u00e7\u0131k bir \u015fekilde ifade eder. Geleneksel d\u00f6ng\u00fcler, ad\u0131m ad\u0131m mant\u0131\u011f\u0131 (bir bo\u015f liste olu\u015ftur, her \u00f6\u011feyi kontrol et, ko\u015ful do\u011fruysa ekle) g\u00f6sterir.<br \/>\n&#8211;   <strong>Hata Azaltma:<\/strong> <code>append()<\/code> gibi manuel listeye ekleme i\u015flemlerini ortadan kald\u0131rarak olas\u0131 hatalar\u0131 azalt\u0131r.<br \/>\n&#8211;   <strong>Performans:<\/strong> C ile optimize edilmi\u015f yerle\u015fik fonksiyonlar (filter, list comprehensions) genellikle saf Python d\u00f6ng\u00fclerinden daha h\u0131zl\u0131 \u00e7al\u0131\u015f\u0131r, \u00f6zellikle b\u00fcy\u00fck veri setlerinde.<\/p>\n<p>Ancak, \u00e7ok karma\u015f\u0131k mant\u0131klar veya yan etkiler (\u00f6rne\u011fin, bir d\u00f6ng\u00fc i\u00e7inde ba\u015fka bir de\u011fi\u015fkeni g\u00fcncellemek) gerektiren durumlar i\u00e7in geleneksel <code>for<\/code> d\u00f6ng\u00fcs\u00fc hala en uygun se\u00e7enek olabilir.<\/p>\n<h3>Geli\u015fmi\u015f Filtreleme Senaryolar\u0131<\/h3>\n<p><code>filter()<\/code> fonksiyonu, birden fazla ko\u015fulu i\u00e7eren veya daha karma\u015f\u0131k mant\u0131k gerektiren durumlar i\u00e7in de kullan\u0131labilir.<\/p>\n<h4>Birden Fazla Ko\u015ful<\/h4>\n<p>Birden fazla ko\u015fulu <code>lambda<\/code> fonksiyonlar\u0131 i\u00e7inde <code>and<\/code> veya <code>or<\/code> operat\u00f6rleri ile birle\u015ftirebilirsiniz.<\/p>\n<pre><code class=\"language-python\">sayilar = [1, 5, 10, 15, 20, 25, 30]\n\n<h2>Hem 5'e b\u00f6l\u00fcnen hem de 10'dan b\u00fcy\u00fck say\u0131lar\u0131 filtreleme<\/h2>\nkosullu_sayilar = list(filter(lambda x: x % 5 == 0 and x &gt; 10, sayilar))\nprint(f&quot;5'e b\u00f6l\u00fcnen ve 10'dan b\u00fcy\u00fck say\u0131lar: {kosullu_sayilar}&quot;)\n<h2>\u00c7\u0131kt\u0131: 5'e b\u00f6l\u00fcnen ve 10'dan b\u00fcy\u00fck say\u0131lar: [15, 20, 25, 30]<\/h2>\n\n<h2>'a' veya 'e' harfi i\u00e7eren kelimeleri filtreleme<\/h2>\nkelimeler = [&quot;kedi&quot;, &quot;k\u00f6pek&quot;, &quot;fare&quot;, &quot;ku\u015f&quot;, &quot;bal\u0131k&quot;]\na_veya_e_icerenler = list(filter(lambda kelime: 'a' in kelime or 'e' in kelime, kelimeler))\nprint(f&quot;'a' veya 'e' i\u00e7eren kelimeler: {a_veya_e_icerenler}&quot;)\n<h2>\u00c7\u0131kt\u0131: 'a' veya 'e' i\u00e7eren kelimeler: ['kedi', 'fare', 'bal\u0131k']<\/code><\/pre>\n<\/h2>\n<h4>Bo\u015f veya None De\u011ferleri Filtreleme<\/h4>\n<p>Daha \u00f6nce <code>None<\/code> parametresiyle g\u00f6rd\u00fc\u011f\u00fcm\u00fcz gibi, belirli &#8220;yanl\u0131\u015f&#8221; de\u011ferleri filtrelemek yayg\u0131n bir senaryodur.<\/p>\n<pre><code class=\"language-python\">veri = [1, 0, 'hello', '', None, [], [1, 2], {}, {'a': 1}, False]\n\n<h2>Sadece &quot;do\u011fru&quot; (truthy) de\u011ferleri alma<\/h2>\ntemiz_veri = list(filter(None, veri))\nprint(f&quot;Temizlenmi\u015f veri: {temiz_veri}&quot;)\n<h2>\u00c7\u0131kt\u0131: Temizlenmi\u015f veri: [1, 'hello', [1, 2], {'a': 1}]<\/h2>\n\n<h2>Sadece say\u0131sal olmayan de\u011ferleri filtreleme<\/h2>\nsayisal_olmayanlar = list(filter(lambda x: not isinstance(x, (int, float)), veri))\nprint(f&quot;Say\u0131sal olmayanlar: {sayisal_olmayanlar}&quot;)\n<h2>\u00c7\u0131kt\u0131: Say\u0131sal olmayanlar: ['hello', '', None, [], [1, 2], {}, {'a': 1}, False]<\/code><\/pre>\n<\/h2>\n<h3>En \u0130yi Uygulamalar ve \u0130pu\u00e7lar\u0131<\/h3>\n<p><code>filter()<\/code> fonksiyonunu kullan\u0131rken dikkate alman\u0131z gereken baz\u0131 en iyi uygulamalar ve ipu\u00e7lar\u0131:<\/p>\n<p>1.  <strong>Okunabilirlik \u0130\u00e7in Lambda veya Tan\u0131ml\u0131 Fonksiyon Se\u00e7imi:<\/strong><br \/>\n    *   Basit, tek sat\u0131rl\u0131k ko\u015fullar i\u00e7in <code>lambda<\/code> fonksiyonlar\u0131n\u0131 kullan\u0131n.<br \/>\n    *   Karma\u015f\u0131k veya birden fazla mant\u0131ksal ad\u0131m i\u00e7eren ko\u015fullar i\u00e7in ayr\u0131 bir <code>def<\/code> ile tan\u0131mlanm\u0131\u015f normal bir fonksiyon kullan\u0131n. Bu, kodun okunabilirli\u011fini art\u0131r\u0131r ve test edilmesini kolayla\u015ft\u0131r\u0131r.<br \/>\n2.  <strong>Yineleyicileri T\u00fcketme:<\/strong> <code>filter()<\/code> bir yineleyici d\u00f6nd\u00fcrd\u00fc\u011f\u00fc i\u00e7in, sonu\u00e7lar\u0131 bir liste, demet veya ba\u015fka bir koleksiyona d\u00f6n\u00fc\u015ft\u00fcrmeyi unutmay\u0131n (<code>list()<\/code>, <code>tuple()<\/code>, <code>set()<\/code>). Aksi takdirde, yineleyiciyi do\u011frudan kullanmaya \u00e7al\u0131\u015f\u0131rsan\u0131z (\u00f6rne\u011fin, bir <code>print()<\/code> i\u00e7inde), sadece nesnenin bellekteki adresini g\u00f6r\u00fcrs\u00fcn\u00fcz.<br \/>\n3.  <strong>Yineleyici Tek Kullan\u0131ml\u0131kt\u0131r:<\/strong> Bir <code>filter<\/code> yineleyicisi t\u00fcketildikten sonra (\u00f6rne\u011fin, bir d\u00f6ng\u00fcde gezildikten veya <code>list()<\/code> ile d\u00f6n\u00fc\u015ft\u00fcr\u00fcld\u00fckten sonra) bo\u015fal\u0131r. E\u011fer ayn\u0131 filtrelenmi\u015f verilere tekrar ihtiyac\u0131n\u0131z varsa, <code>filter()<\/code> fonksiyonunu tekrar \u00e7a\u011f\u0131rman\u0131z gerekir.<br \/>\n4.  <strong>Bellek Verimlili\u011fi i\u00e7in Tembel De\u011ferlendirme:<\/strong> B\u00fcy\u00fck veri k\u00fcmelerinde <code>filter()<\/code>&#8216;\u0131n tembel de\u011ferlendirme \u00f6zelli\u011finden yararlan\u0131n. E\u011fer t\u00fcm sonu\u00e7lar\u0131 belle\u011fe y\u00fcklemeye gerek yoksa, yineleyiciyi oldu\u011fu gibi kullan\u0131n veya sadece ihtiyac\u0131n\u0131z olan kadar\u0131n\u0131 t\u00fcketin.<br \/>\n5.  <strong>Liste Anlay\u0131\u015flar\u0131 ile Kar\u015f\u0131la\u015ft\u0131rma:<\/strong> \u00c7o\u011fu durumda liste anlay\u0131\u015flar\u0131 daha okunabilir ve Pythonik kabul edilir. <code>filter()<\/code>&#8216;\u0131, \u00f6zellikle karma\u015f\u0131k bir fonksiyonu veya tembel de\u011ferlendirme ihtiyac\u0131n\u0131 belirtmek istedi\u011finizde kullanmay\u0131 d\u00fc\u015f\u00fcn\u00fcn.<br \/>\n6.  <strong>Zincirleme (Chaining):<\/strong> Birden fazla filtreleme i\u015flemi yapman\u0131z gerekiyorsa, <code>filter()<\/code> \u00e7a\u011fr\u0131lar\u0131n\u0131 zincirleyebilirsiniz. Ancak bu, kodu bazen okunaks\u0131z hale getirebilir. Alternatif olarak, tek bir <code>lambda<\/code> i\u00e7inde birden fazla ko\u015ful kullanmak veya jenerat\u00f6r anlay\u0131\u015flar\u0131yla zincirleme yapmak daha temiz olabilir.<\/p>\n<pre><code class=\"language-python\"># Zincirleme \u00f6rne\u011fi (\u00e7ok yayg\u0131n de\u011fil, genellikle tek lambda tercih edilir)\nsayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\ntek_sayilar = filter(lambda x: x % 2 != 0, sayilar)\nbuyuk_uc_tek_sayilar = list(filter(lambda x: x &gt; 3, tek_sayilar))\nprint(f&quot;3'ten b\u00fcy\u00fck tek say\u0131lar: {buyuk_uc_tek_sayilar}&quot;)\n<h2>\u00c7\u0131kt\u0131: 3'ten b\u00fcy\u00fck tek say\u0131lar: [5, 7, 9]<\/h2>\n\n<h2>Tek lambda ile ayn\u0131 sonu\u00e7<\/h2>\ntek_lambda_sayilar = list(filter(lambda x: x % 2 != 0 and x &gt; 3, sayilar))\nprint(f&quot;Tek lambda ile: {tek_lambda_sayilar}&quot;)\n<h2>\u00c7\u0131kt\u0131: Tek lambda ile: [5, 7, 9]<\/code><\/pre>\n<\/h2>\n<h3>Yayg\u0131n Hatalar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p><code>filter()<\/code> fonksiyonunu kullan\u0131rken yap\u0131lan baz\u0131 yayg\u0131n hatalar ve bunlardan ka\u00e7\u0131nma yollar\u0131:<\/p>\n<p>1.  <strong>Fonksiyon Parametresi Olarak De\u011fer Ge\u00e7irme:<\/strong> <code>filter()<\/code> fonksiyon parametresi olarak bir fonksiyon (\u00e7a\u011fr\u0131labilir bir nesne) bekler, bir de\u011fer de\u011fil.<\/p>\n<pre><code class=\"language-python\"># Yanl\u0131\u015f kullan\u0131m:\n    # list(filter(x &gt; 5, [1, 6, 3, 8])) # TypeError: 'bool' object is not callable\n\n    # Do\u011fru kullan\u0131m:\n    list(filter(lambda x: x &gt; 5, [1, 6, 3, 8]))<\/code><\/pre>\n<p>2.  <strong>Yineleyiciyi T\u00fcketmeyi Unutma:<\/strong> <code>filter()<\/code>&#8216;\u0131n bir yineleyici d\u00f6nd\u00fcrd\u00fc\u011f\u00fcn\u00fc unutmak, beklenmedik \u00e7\u0131kt\u0131lara neden olabilir.<\/p>\n<pre><code class=\"language-python\">sayilar = [1, 2, 3]\n    filtrelenmis = filter(lambda x: x &gt; 1, sayilar)\n    print(filtrelenmis) # \u00c7\u0131kt\u0131: &lt;filter object at 0x...&gt; (nesnenin kendisi)\n\n    # \u00c7\u00f6z\u00fcm:\n    print(list(filtrelenmis)) # \u00c7\u0131kt\u0131: [2, 3]<\/code><\/pre>\n<p>3.  <strong>T\u00fcketilmi\u015f Yineleyiciyi Yeniden Kullanma:<\/strong> Bir kez t\u00fcketilen yineleyici bo\u015fal\u0131r ve tekrar kullan\u0131lamaz.<\/p>\n<pre><code class=\"language-python\">sayilar = [1, 2, 3]\n    filtrelenmis = filter(lambda x: x &gt; 1, sayilar)\n    ilk_kullanim = list(filtrelenmis)\n    ikinci_kullanim = list(filtrelenmis) # Bo\u015f liste d\u00f6nd\u00fcr\u00fcr!\n\n    print(f&quot;\u0130lk kullan\u0131m: {ilk_kullanim}&quot;) # [2, 3]\n    print(f&quot;\u0130kinci kullan\u0131m: {ikinci_kullanim}&quot;) # []\n\n    # \u00c7\u00f6z\u00fcm: Her kullan\u0131m i\u00e7in filter'\u0131 tekrar \u00e7a\u011f\u0131r\u0131n:\n    filtrelenmis_tekrar = filter(lambda x: x &gt; 1, sayilar)\n    ikinci_kullanim_dogru = list(filtrelenmis_tekrar)\n    print(f&quot;\u0130kinci kullan\u0131m (do\u011fru): {ikinci_kullanim_dogru}&quot;) # [2, 3]<\/code><\/pre>\n<p>4.  <strong>Fonksiyonun Boole De\u011feri D\u00f6nd\u00fcrmemesi:<\/strong> Fonksiyon parametresi, her \u00f6\u011fe i\u00e7in <code>True<\/code> veya <code>False<\/code> d\u00f6nd\u00fcrmelidir. D\u00f6n\u00fc\u015f de\u011feri Python&#8217;\u0131n &#8220;truthiness&#8221; kurallar\u0131na g\u00f6re de\u011ferlendirilir, ancak a\u00e7\u0131k\u00e7a boole d\u00f6nd\u00fcrmek daha iyi bir uygulamad\u0131r.<\/p>\n<pre><code class=\"language-python\"># Yanl\u0131\u015f\/Kafa kar\u0131\u015ft\u0131r\u0131c\u0131 kullan\u0131m (\u00e7al\u0131\u015f\u0131r ama net de\u011fil):\n    # list(filter(lambda x: x % 2, [1, 2, 3, 4])) # Tek say\u0131lar\u0131 d\u00f6nd\u00fcr\u00fcr \u00e7\u00fcnk\u00fc 1, 3 truthy'dir.\n    # Bu, x % 2'nin 0 (False) veya 1 (True) d\u00f6nd\u00fcrmesine dayan\u0131r.\n\n    # Do\u011fru ve a\u00e7\u0131k kullan\u0131m:\n    list(filter(lambda x: x % 2 != 0, [1, 2, 3, 4])) # Tek say\u0131lar\u0131 d\u00f6nd\u00fcr\u00fcr<\/code><\/pre>\n<h3>Sonu\u00e7<\/h3>\n<p><code>filter()<\/code> fonksiyonu, Python&#8217;da veri filtreleme i\u015flemlerini zarif, verimli ve Pythonik bir \u015fekilde ger\u00e7ekle\u015ftirmek i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Tembel de\u011ferlendirme yetene\u011fi sayesinde b\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken bellek verimlili\u011fi sa\u011flar. <code>lambda<\/code> fonksiyonlar\u0131yla birlikte kullan\u0131ld\u0131\u011f\u0131nda k\u0131sa ve \u00f6z filtreleme ko\u015fullar\u0131 yazmay\u0131 kolayla\u015ft\u0131r\u0131rken, daha karma\u015f\u0131k mant\u0131klar i\u00e7in ayr\u0131 tan\u0131mlanm\u0131\u015f fonksiyonlarla da esneklik sunar.<\/p>\n<p>Liste anlay\u0131\u015flar\u0131 gibi alternatiflerle kar\u015f\u0131la\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda, <code>filter()<\/code>&#8216;\u0131n kendine \u00f6zg\u00fc avantajlar\u0131 vard\u0131r ve do\u011fru senaryolarda kullan\u0131ld\u0131\u011f\u0131nda kodunuzun kalitesini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir. Veri i\u015fleme ak\u0131\u015flar\u0131n\u0131zda <code>filter()<\/code>&#8216;\u0131 ne zaman kullanaca\u011f\u0131n\u0131z\u0131 ve onu di\u011fer Python yap\u0131lar\u0131yla nas\u0131l entegre edece\u011finizi anlamak, daha yetkin ve verimli Python kodlar\u0131 yazman\u0131z i\u00e7in size yard\u0131mc\u0131 olacakt\u0131r. Bu makale, <code>filter()<\/code> fonksiyonunun t\u00fcm temel ve ileri d\u00fczey y\u00f6nlerini kapsayarak, onu Python ara\u00e7 kutunuzda ustaca kullanman\u0131z i\u00e7in gerekli bilgileri sa\u011flamay\u0131 ama\u00e7lam\u0131\u015ft\u0131r.<\/p>\n<div class=\"github-example-link\"><strong>\u00d6rnek kod:<\/strong> <a href=\"https:\/\/github.com\/fatihsoysalcom\/python-filter-function-basic-usage\" target=\"_blank\" rel=\"noopener noreferrer\">github.com\/fatihsoysalcom\/python-filter-function-basic-usage<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"Python&#8217;da Filter Fonksiyonunu Kullanma Rehberi Python, veri i\u015fleme ve manip\u00fclasyonu i\u00e7in zengin bir dizi yerle\u015fik fonksiyon sunar.","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1403],"tags":[],"class_list":{"0":"post-43441","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-python","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Python&#039;da Filter Fonksiyonunu Kullanma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python&#039;da Filter Fonksiyonunu Kullanma Rehberi\" \/>\n<meta property=\"og:description\" content=\"Python&#039;da Filter Fonksiyonunu Kullanma Rehberi Python, veri i\u015fleme ve manip\u00fclasyonu i\u00e7in zengin bir dizi yerle\u015fik fonksiyon sunar.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-19T05:00:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-19T05:01:14+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Python&#8217;da Filter Fonksiyonunu Kullanma Rehberi\",\"datePublished\":\"2026-07-19T05:00:54+00:00\",\"dateModified\":\"2026-07-19T05:01:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/\"},\"wordCount\":2345,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Python\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/\",\"name\":\"Python'da Filter Fonksiyonunu Kullanma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-07-19T05:00:54+00:00\",\"dateModified\":\"2026-07-19T05:01:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python&#8217;da Filter Fonksiyonunu Kullanma Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Python'da Filter Fonksiyonunu Kullanma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Python'da Filter Fonksiyonunu Kullanma Rehberi","og_description":"Python'da Filter Fonksiyonunu Kullanma Rehberi Python, veri i\u015fleme ve manip\u00fclasyonu i\u00e7in zengin bir dizi yerle\u015fik fonksiyon sunar.","og_url":"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-07-19T05:00:54+00:00","article_modified_time":"2026-07-19T05:01:14+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Python&#8217;da Filter Fonksiyonunu Kullanma Rehberi","datePublished":"2026-07-19T05:00:54+00:00","dateModified":"2026-07-19T05:01:14+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/"},"wordCount":2345,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Python"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/","name":"Python'da Filter Fonksiyonunu Kullanma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-07-19T05:00:54+00:00","dateModified":"2026-07-19T05:01:14+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-filter-fonksiyonunu-kullanma-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Python&#8217;da Filter Fonksiyonunu Kullanma Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/43441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=43441"}],"version-history":[{"count":2,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/43441\/revisions"}],"predecessor-version":[{"id":43443,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/43441\/revisions\/43443"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=43441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=43441"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=43441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}