{"id":30404,"date":"2025-09-27T11:01:35","date_gmt":"2025-09-27T08:01:35","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/"},"modified":"2025-09-27T11:01:35","modified_gmt":"2025-09-27T08:01:35","slug":"pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/","title":{"rendered":"Python&#8217;da Liste ve S\u00f6zl\u00fck Kapsamlar\u0131: Kapsaml\u0131 Bir Kar\u015f\u0131la\u015ft\u0131rma"},"content":{"rendered":"<p><body><\/p>\n<p>Python&#8217;da veri manip\u00fclasyonu, her yaz\u0131l\u0131mc\u0131n\u0131n g\u00fcnl\u00fck i\u015flerinin \u00f6nemli bir par\u00e7as\u0131d\u0131r. Peki, bu i\u015flemleri daha k\u0131sa, anla\u015f\u0131l\u0131r ve performansl\u0131 bir \u015fekilde yapman\u0131n yollar\u0131 var m\u0131? Evet, tam da bu noktada Python&#8217;\u0131n &#8220;kapsamland\u0131rma&#8221; (comprehension) yap\u0131lar\u0131 devreye giriyor. \u00d6zellikle liste ve s\u00f6zl\u00fck kapsamlar\u0131, d\u00f6ng\u00fclerle yap\u0131lan karma\u015f\u0131k i\u015flemleri tek sat\u0131rda ifade etme g\u00fcc\u00fc sunar. Bu makalede, bu g\u00fc\u00e7l\u00fc yap\u0131lar\u0131 s\u0131f\u0131rdan ele alacak, aralar\u0131ndaki farklar\u0131 inceleyecek ve iki ayr\u0131 listeden nas\u0131l etkili bir \u015fekilde s\u00f6zl\u00fck kapsam\u0131 olu\u015fturulaca\u011f\u0131n\u0131 detayl\u0131 \u00f6rneklerle \u00f6\u011freneceksiniz. Haz\u0131rsan\u0131z, Python&#8217;da veri d\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fcn b\u00fcy\u00fcl\u00fc d\u00fcnyas\u0131na dalal\u0131m!<\/p>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, ham veriyi anlaml\u0131 bilgilere d\u00f6n\u00fc\u015ft\u00fcrmek, karar alma s\u00fcre\u00e7lerinin temelini olu\u015fturur. Bir geli\u015ftirici olarak, genellikle farkl\u0131 kaynaklardan gelen verileri al\u0131p, belirli ihtiya\u00e7lara g\u00f6re filtrelemek, d\u00f6n\u00fc\u015ft\u00fcrmek veya yeniden yap\u0131land\u0131rmak zorunda kal\u0131r\u0131z. Bu i\u015flemler, uygulaman\u0131z\u0131n performans\u0131n\u0131, kodunuzun okunabilirli\u011fini ve genel geli\u015ftirme s\u00fcrecinin verimlili\u011fini do\u011frudan etkiler. Geleneksel yakla\u015f\u0131mlarla, yani klasik <code>for<\/code> d\u00f6ng\u00fcleriyle bu d\u00f6n\u00fc\u015f\u00fcmleri ger\u00e7ekle\u015ftirmek m\u00fcmk\u00fcn olsa da, \u00e7o\u011fu zaman kod kalabal\u0131\u011f\u0131na ve tekrarlayan yap\u0131lara yol a\u00e7abilir. \u0130\u015fte tam da bu noktada, Python&#8217;\u0131n kapsamland\u0131rma yap\u0131lar\u0131, bize \u00e7ok daha zarif ve etkili bir \u00e7\u00f6z\u00fcm sunar.<\/p>\n<p>Veri d\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fcn \u00f6nemi, sadece b\u00fcy\u00fck veri setleriyle \u00e7al\u0131\u015f\u0131rken de\u011fil, ayn\u0131 zamanda k\u00fc\u00e7\u00fck \u00f6l\u00e7ekli projelerde bile kendini g\u00f6sterir. \u00d6rne\u011fin, bir kullan\u0131c\u0131 listesinden sadece aktif kullan\u0131c\u0131lar\u0131 filtrelemek, bir \u00fcr\u00fcn listesindeki fiyatlara indirim uygulamak veya iki farkl\u0131 veri setini birbiriyle e\u015fle\u015ftirerek yeni bir yap\u0131 olu\u015fturmak gibi temel i\u015flemler, do\u011fru ara\u00e7larla yap\u0131ld\u0131\u011f\u0131nda hem zamandan tasarruf ettirir hem de olas\u0131 hatalar\u0131n \u00f6n\u00fcne ge\u00e7er. Bu ba\u011flamda, Python&#8217;\u0131n sundu\u011fu liste ve s\u00f6zl\u00fck kapsamlar\u0131, bu t\u00fcr d\u00f6n\u00fc\u015f\u00fcmleri adeta bir sanat eserine d\u00f6n\u00fc\u015ft\u00fcren g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r. Bu yap\u0131lar sayesinde, daha az kod yazarak daha \u00e7ok i\u015f yapabilir, kodunuzun amac\u0131n\u0131 daha net bir \u015fekilde ifade edebilir ve nihayetinde daha s\u00fcrd\u00fcr\u00fclebilir uygulamalar geli\u015ftirebilirsiniz.<\/p>\n<p>Python&#8217;daki kapsamland\u0131rma mekanizmalar\u0131, \u00f6zellikle fonksiyonel programlama prensiplerinden ilham al\u0131r ve veri yap\u0131lar\u0131n\u0131 d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in deklaratif (bildirimsel) bir yakla\u015f\u0131m sunar. Yani, &#8220;nas\u0131l yap\u0131ld\u0131\u011f\u0131n\u0131&#8221; de\u011fil, &#8220;ne yap\u0131laca\u011f\u0131n\u0131&#8221; belirtirsiniz. Bu durum, kodun hem yaz\u0131m\u0131n\u0131 kolayla\u015ft\u0131r\u0131r hem de ba\u015fkalar\u0131 taraf\u0131ndan anla\u015f\u0131lmas\u0131n\u0131 h\u0131zland\u0131r\u0131r. Ayr\u0131ca, Python yorumlay\u0131c\u0131s\u0131n\u0131n bu yap\u0131lar\u0131 optimize edilmi\u015f bir \u015fekilde derlemesi ve \u00e7al\u0131\u015ft\u0131rmas\u0131 sayesinde, performans a\u00e7\u0131s\u0131ndan da \u00e7o\u011fu zaman geleneksel d\u00f6ng\u00fclere k\u0131yasla avantaj sa\u011flarlar. Dolay\u0131s\u0131yla, veri d\u00f6n\u00fc\u015f\u00fcm\u00fcne hakim olmak, modern Python geli\u015ftiricili\u011finin olmazsa olmaz\u0131d\u0131r ve kapsamlar bu hakimiyetin anahtar\u0131d\u0131r.<\/p>\n<h2>Kapsamland\u0131rma (Comprehension) Nedir ve Neden Kullanmal\u0131y\u0131z?<\/h2>\n<p>Kapsamland\u0131rma, Python&#8217;da var olan bir iterable (liste, tuple, set, string vb.) \u00fczerinden yeni bir veri yap\u0131s\u0131 olu\u015fturmak i\u00e7in kullan\u0131lan k\u0131sa ve \u00f6z bir s\u00f6z dizimidir. Ba\u015fka bir deyi\u015fle, belirli bir kurala g\u00f6re mevcut verileri d\u00f6n\u00fc\u015ft\u00fcrerek veya filtreleyerek yeni bir koleksiyon yaratman\u0131n deklaratif bir yoludur. Temel olarak, bir <code>for<\/code> d\u00f6ng\u00fcs\u00fcn\u00fc ve iste\u011fe ba\u011fl\u0131 olarak bir <code>if<\/code> ko\u015fulunu tek bir sat\u0131rda birle\u015ftirir. Bu yap\u0131n\u0131n ba\u015fl\u0131ca avantajlar\u0131 \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Okunabilirlik:<\/strong> Tek sat\u0131rda ifade edilen mant\u0131k, \u00e7o\u011fu zaman birden fazla sat\u0131ra yay\u0131lan d\u00f6ng\u00fc ve ko\u015ful bloklar\u0131ndan daha anla\u015f\u0131l\u0131rd\u0131r. Kodun ne yapt\u0131\u011f\u0131n\u0131 bir bak\u0131\u015fta anlamak kolayla\u015f\u0131r.<\/li>\n<li><strong>K\u0131sal\u0131k:<\/strong> Daha az kod yazarak ayn\u0131 i\u015fi yapars\u0131n\u0131z. Bu, \u00f6zellikle b\u00fcy\u00fck projelerde veya h\u0131zl\u0131 prototipleme yaparken zaman tasarrufu sa\u011flar.<\/li>\n<li><strong>Performans:<\/strong> Python yorumlay\u0131c\u0131s\u0131, kapsamland\u0131rma yap\u0131lar\u0131n\u0131 dahili olarak optimize eder. Bu nedenle, \u00e7o\u011fu durumda geleneksel <code>for<\/code> d\u00f6ng\u00fclerine k\u0131yasla daha h\u0131zl\u0131 \u00e7al\u0131\u015fabilirler, \u00f6zellikle b\u00fcy\u00fck veri setleriyle u\u011fra\u015f\u0131rken bu fark belirginle\u015fir.<\/li>\n<li><strong>Hata Azaltma:<\/strong> Daha az kod sat\u0131r\u0131 ve daha basit yap\u0131, yanl\u0131\u015f yaz\u0131m veya mant\u0131k hatas\u0131 yapma olas\u0131l\u0131\u011f\u0131n\u0131 azalt\u0131r.<\/li>\n<\/ul>\n<p>Peki, kapsamland\u0131rmalar olmasayd\u0131 ne yapacakt\u0131k? \u0130\u015fte geleneksel yakla\u015f\u0131m:<\/p>\n<h3>Geleneksel Yakla\u015f\u0131m: D\u00f6ng\u00fclerle Veri D\u00f6n\u00fc\u015ft\u00fcrmek<\/h3>\n<p>\u00d6rne\u011fin, bir say\u0131 listesindeki her say\u0131n\u0131n karesini almak istedi\u011fimizi d\u00fc\u015f\u00fcnelim. Geleneksel y\u00f6ntemle bu i\u015flemi \u015fu \u015fekilde yapar\u0131z:<\/p>\n<pre><code>\n  sayilar = [1, 2, 3, 4, 5]\n  kareleri = []\n  for sayi in sayilar:\n      kareleri.append(sayi ** 2)\n  print(kareleri)\n  # \u00c7\u0131kt\u0131: [1, 4, 9, 16, 25]\n  <\/pre>\n<p><\/code><\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, bir bo\u015f liste tan\u0131mlad\u0131k, ard\u0131ndan bir <code>for<\/code> d\u00f6ng\u00fcs\u00fcyle her eleman\u0131 gezdik ve d\u00f6n\u00fc\u015ft\u00fcrd\u00fc\u011f\u00fcm\u00fcz elemanlar\u0131 yeni listeye ekledik. Benzer \u015fekilde, bir anahtar-de\u011fer \u00e7iftini i\u00e7eren bir s\u00f6zl\u00fck olu\u015fturmak istedi\u011fimizde de ayn\u0131 mant\u0131\u011f\u0131 kullanabiliriz. Mesela, \u00f6\u011frencilerin notlar\u0131n\u0131 temsil eden bir liste oldu\u011funu ve her \u00f6\u011frencinin notuna \"Ge\u00e7ti\" veya \"Kald\u0131\" \u015feklinde bir durum atamak istedi\u011fimizi varsayal\u0131m:<\/p>\n<pre><code>\n  ogrenciler = [\"Ali\", \"Ay\u015fe\", \"Mehmet\"]\n  notlar = [85, 40, 65]\n  durum_sozlugu = {}\n  for i in range(len(ogrenciler)):\n      ogrenci = ogrenciler[i]\n      notu = notlar[i]\n      durum = \"Ge\u00e7ti\" if notu >= 50 else \"Kald\u0131\"\n      durum_sozlugu[ogrenci] = durum\n  print(durum_sozlugu)\n  # \u00c7\u0131kt\u0131: {'Ali': 'Ge\u00e7ti', 'Ay\u015fe': 'Kald\u0131', 'Mehmet': 'Ge\u00e7ti'}\n  <\/pre>\n<p><\/code><\/p>\n<p>Bu y\u00f6ntemler kesinlikle i\u015flevseldir ve \u00f6\u011frenmesi kolayd\u0131r. Ancak, kodun uzunlu\u011fu artt\u0131k\u00e7a veya i\u00e7 i\u00e7e d\u00f6ng\u00fcler kullan\u0131ld\u0131\u011f\u0131nda okunabilirlik ve s\u00fcrd\u00fcr\u00fclebilirlik sorunlar\u0131 ortaya \u00e7\u0131kabilir. \u0130\u015fte bu y\u00fczden kapsamland\u0131rmalar, Python geli\u015ftiricilerinin vazge\u00e7ilmez ara\u00e7lar\u0131ndan biri haline gelmi\u015ftir. \u015eimdi, bu g\u00fc\u00e7l\u00fc yap\u0131lar\u0131n detaylar\u0131na inelim.<\/p>\n<h2>Python'da Liste Kapsamlar\u0131 Nas\u0131l Olu\u015fturulur?<\/h2>\n<p>Liste kapsamlar\u0131 (List Comprehensions), Python'da yeni bir liste olu\u015fturman\u0131n en pop\u00fcler ve etkili yollar\u0131ndan biridir. Mevcut bir iterable \u00fczerindeki her eleman i\u00e7in bir ifadeyi de\u011ferlendirerek veya belirli ko\u015fullara uyan elemanlar\u0131 filtreleyerek yeni bir liste \u00fcretmenizi sa\u011flar. S\u00f6z dizimi genellikle k\u00f6\u015feli parantez <code>[]<\/code> i\u00e7inde yer al\u0131r ve bir <code>for<\/code> d\u00f6ng\u00fcs\u00fc ile ba\u015flar, iste\u011fe ba\u011fl\u0131 olarak bir <code>if<\/code> ko\u015fulu i\u00e7erebilir.<\/p>\n<h3>Temel Liste Kapsam\u0131: S\u00f6z Dizimi ve \u0130lk \u00d6rnekler<\/h3>\n<p>Temel liste kapsam\u0131n\u0131n genel s\u00f6z dizimi \u015f\u00f6yledir:<\/p>\n<pre><code>\n  yeni_liste = [ifade for eleman in iterable]\n  <\/pre>\n<p><\/code><\/p>\n<p>Burada:<\/p>\n<ul>\n<li><code>ifade<\/code>: Her eleman i\u00e7in uygulanacak operasyon veya d\u00f6n\u00fc\u015ft\u00fcrme.<\/li>\n<li><code>eleman<\/code>: Iterable'daki her bir \u00f6\u011feyi temsil eden de\u011fi\u015fken.<\/li>\n<li><code>iterable<\/code>: \u00dczerinde d\u00f6ng\u00fc yap\u0131lacak liste, tuple, string veya ba\u015fka bir koleksiyon.<\/li>\n<\/ul>\n<p>Az \u00f6nceki kare alma \u00f6rne\u011fini liste kapsam\u0131 ile yeniden yazal\u0131m:<\/p>\n<pre><code>\n  sayilar = [1, 2, 3, 4, 5]\n  kareleri = [sayi ** 2 for sayi in sayilar]\n  print(kareleri)\n  # \u00c7\u0131kt\u0131: [1, 4, 9, 16, 25]\n  <\/pre>\n<p><\/code><\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, tek sat\u0131rda ayn\u0131 sonucu elde ettik. Kod \u00e7ok daha k\u0131sa ve do\u011frudan anla\u015f\u0131l\u0131r hale geldi. Ba\u015fka bir \u00f6rnek olarak, bir metin listesindeki her kelimeyi b\u00fcy\u00fck harfe \u00e7evirebiliriz:<\/p>\n<pre><code>\n  kelimeler = [\"elma\", \"armut\", \"kiraz\"]\n  buyuk_harfli_kelimeler = [kelime.upper() for kelime in kelimeler]\n  print(buyuk_harfli_kelimeler)\n  # \u00c7\u0131kt\u0131: ['ELMA', 'ARMUT', 'K\u0130RAZ']\n  <\/pre>\n<p><\/code><\/p>\n<h3>Ko\u015fullu Liste Kapsamlar\u0131: Filtreleme G\u00fcc\u00fc<\/h3>\n<p>Liste kapsamlar\u0131, sadece d\u00f6n\u00fc\u015ft\u00fcrme yapmakla kalmaz, ayn\u0131 zamanda elemanlar\u0131 belirli ko\u015fullara g\u00f6re filtrelemenizi de sa\u011flar. S\u00f6z dizimine bir <code>if<\/code> ko\u015fulu ekleyerek bunu yapabiliriz:<\/p>\n<pre><code>\n  yeni_liste = [ifade for eleman in iterable if ko\u015ful]\n  <\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi, sadece \u00e7ift say\u0131lar\u0131n karelerini almak istedi\u011fimizi varsayal\u0131m:<\/p>\n<pre><code>\n  sayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n  cift_sayilarin_kareleri = [sayi ** 2 for sayi in sayilar if sayi % 2 == 0]\n  print(cift_sayilarin_kareleri)\n  # \u00c7\u0131kt\u0131: [4, 16, 36, 64, 100]\n  <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, \u00f6nce <code>sayilar<\/code> listesindeki her <code>sayi<\/code> i\u00e7in bir d\u00f6ng\u00fc ba\u015flat\u0131l\u0131r. Ard\u0131ndan, <code>if sayi % 2 == 0<\/code> ko\u015fulu kontrol edilir. E\u011fer ko\u015ful do\u011fruysa (yani say\u0131 \u00e7iftse), o say\u0131n\u0131n karesi al\u0131n\u0131r ve yeni listeye eklenir. Bu, geleneksel bir d\u00f6ng\u00fc ve if blo\u011fu ile yapmaktan \u00e7ok daha derli toplu bir yakla\u015f\u0131md\u0131r.<\/p>\n<p>Bazen <code>if<\/code> ko\u015fulunu ifadeden \u00f6nce de kullanabiliriz, bu durumda bir \"if-else\" yap\u0131s\u0131 haline gelir:<\/p>\n<pre><code>\n  yeni_liste = [ifade_true if ko\u015ful else ifade_false for eleman in iterable]\n  <\/pre>\n<p><\/code><\/p>\n<p>\u00d6rne\u011fin, say\u0131 50'den b\u00fcy\u00fckse 'Ge\u00e7ti', de\u011filse 'Kald\u0131' yazd\u0131ran bir liste olu\u015ftural\u0131m:<\/p>\n<pre><code>\n  notlar = [75, 40, 90, 30, 65]\n  durumlar = [\"Ge\u00e7ti\" if notu >= 50 else \"Kald\u0131\" for notu in notlar]\n  print(durumlar)\n  # \u00c7\u0131kt\u0131: ['Ge\u00e7ti', 'Kald\u0131', 'Ge\u00e7ti', 'Kald\u0131', 'Ge\u00e7ti']\n  <\/pre>\n<p><\/code><\/p>\n<h3>\u0130\u00e7 \u0130\u00e7e Liste Kapsamlar\u0131: Daha Karma\u015f\u0131k Senaryolar<\/h3>\n<p>Liste kapsamlar\u0131, i\u00e7 i\u00e7e d\u00f6ng\u00fclerle de kullan\u0131labilir. Bu, matrisler veya \u00e7ok boyutlu listelerle \u00e7al\u0131\u015f\u0131rken olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r. Genel s\u00f6z dizimi \u015f\u00f6yledir:<\/p>\n<pre><code>\n  yeni_liste = [ifade for eleman1 in iterable1 for eleman2 in iterable2]\n  <\/pre>\n<p><\/code><\/p>\n<p>E\u011fer bir matrisi d\u00fczle\u015ftirmek (flat etmek) istersek:<\/p>\n<pre><code>\n  matris = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]\n  duzlestirilmis_liste = [eleman for satir in matris for eleman in satir]\n  print(duzlestirilmis_liste)\n  # \u00c7\u0131kt\u0131: [1, 2, 3, 4, 5, 6, 7, 8, 9]\n  <\/pre>\n<p><\/code><\/p>\n<p>Bu, \u00f6nce <code>matris<\/code>'in her <code>satir<\/code>'ini gezer, ard\u0131ndan her <code>satir<\/code> i\u00e7indeki her <code>eleman<\/code>'\u0131 gezer ve bunlar\u0131 yeni listeye ekler. Bu t\u00fcr i\u00e7 i\u00e7e yap\u0131lar, karma\u015f\u0131k veri d\u00f6n\u00fc\u015f\u00fcmlerini \u015fa\u015f\u0131rt\u0131c\u0131 derecede kompakt hale getirebilir.<\/p>\n<div class=\"uzman-ipucu\">\n    Uzman \u0130pucu: \u0130\u00e7 i\u00e7e liste kapsamlar\u0131 g\u00fc\u00e7l\u00fc olsa da, okunabilirli\u011fi korumak ad\u0131na \u00e7ok fazla derinli\u011fe inmekten ka\u00e7\u0131n\u0131n. \u00dc\u00e7 veya daha fazla i\u00e7 i\u00e7e d\u00f6ng\u00fc i\u00e7eren kapsamlar, karma\u015f\u0131kla\u015fabilir ve anla\u015f\u0131lmas\u0131 zorla\u015fabilir. Bu durumlarda, geleneksel d\u00f6ng\u00fcleri veya yard\u0131mc\u0131 fonksiyonlar\u0131 kullanmak daha iyi bir se\u00e7enek olabilir.\n  <\/div>\n<p><strong>Vaka Analizi 1: Bir CSV Dosyas\u0131ndaki Say\u0131sal De\u011ferleri D\u00f6n\u00fc\u015ft\u00fcrme<\/strong><\/p>\n<p>Bir veri analizi senaryosunda, bir CSV dosyas\u0131ndan okunan verilerin belirli bir s\u00fctunundaki say\u0131sal de\u011ferlerin (\u00f6rne\u011fin, s\u0131cakl\u0131k \u00f6l\u00e7\u00fcmleri) Fahrenheit'tan Celsius'a d\u00f6n\u00fc\u015ft\u00fcr\u00fclmesi gerekti\u011fini varsayal\u0131m. Ham veride bo\u015f veya ge\u00e7ersiz de\u011ferler de olabilir.<\/p>\n<pre><code>\n  # \u00d6rnek ham veri sat\u0131rlar\u0131 (genellikle bir dosyadan okunur)\n  veri_satirlari = [\n      \"\u0130stanbul,77.0,Yaz\",\n      \"Ankara,68.0,\u0130lkbahar\",\n      \"\u0130zmir,82.4,Yaz\",\n      \"Antalya,Ge\u00e7ersiz,Sonbahar\",\n      \"Bursa,60.8,K\u0131\u015f\"\n  ]\n\n  # Fahrenheit'tan Celsius'a d\u00f6n\u00fc\u015ft\u00fcrme fonksiyonu\n  def fahrenheit_to_celsius(fahrenheit):\n      return (fahrenheit - 32) * 5 \/ 9\n\n  # Liste kapsam\u0131 kullanarak d\u00f6n\u00fc\u015f\u00fcm ve filtreleme\n  celsius_sicakliklar = [\n      fahrenheit_to_celsius(float(satir.split(',')[1]))\n      for satir in veri_satirlari\n      if satir.split(',')[1].replace('.', '', 1).isdigit() # Say\u0131sal olup olmad\u0131\u011f\u0131n\u0131 kontrol et\n  ]\n\n  print(celsius_sicakliklar)\n  # \u00c7\u0131kt\u0131: [25.0, 20.0, 28.0, 16.0] (yakla\u015f\u0131k de\u011ferler)\n  <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, her <code>satir<\/code> i\u00e7in \u00f6nce virg\u00fclle ay\u0131rma i\u015flemi yap\u0131l\u0131r. Ard\u0131ndan, ikinci eleman\u0131n (s\u0131cakl\u0131k de\u011ferinin) say\u0131sal olup olmad\u0131\u011f\u0131 kontrol edilir. E\u011fer say\u0131sal ise, <code>float()<\/code>'a d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcp <code>fahrenheit_to_celsius<\/code> fonksiyonuna g\u00f6nderilir ve sonu\u00e7 yeni listeye eklenir. Bu, sadece birka\u00e7 sat\u0131r kodla karma\u015f\u0131k bir veri temizleme ve d\u00f6n\u00fc\u015ft\u00fcrme i\u015flemini ger\u00e7ekle\u015ftirmemizi sa\u011flar.<\/p>\n<h2>Python'da S\u00f6zl\u00fck Kapsamlar\u0131 Neden Tercih Edilmelidir?<\/h2>\n<p>Liste kapsamlar\u0131 gibi, s\u00f6zl\u00fck kapsamlar\u0131 (Dictionary Comprehensions) da Python'da g\u00fc\u00e7l\u00fc ve \u00f6zl\u00fc bir veri yap\u0131s\u0131 olu\u015fturma y\u00f6ntemidir. Mevcut bir iterable'dan veya ba\u015fka bir s\u00f6zl\u00fckten yeni bir s\u00f6zl\u00fck olu\u015fturmak i\u00e7in kullan\u0131l\u0131rlar. Anahtar-de\u011fer \u00e7iftlerini dinamik olarak tan\u0131mlaman\u0131za olanak tan\u0131r ve \u00f6zellikle iki farkl\u0131 listeyi birle\u015ftirerek bir s\u00f6zl\u00fck olu\u015fturman\u0131z gerekti\u011finde paha bi\u00e7ilmezdir.<\/p>\n<h3>Temel S\u00f6zl\u00fck Kapsam\u0131: S\u00f6z Dizimi ve Ana-De\u011fer \u00c7iftleri<\/h3>\n<p>S\u00f6zl\u00fck kapsam\u0131n\u0131n genel s\u00f6z dizimi s\u00fcsl\u00fc parantez <code>{}<\/code> i\u00e7inde yer al\u0131r:<\/p>\n<pre><code>\n  yeni_sozluk = {anahtar_ifadesi: deger_ifadesi for eleman in iterable}\n  <\/pre>\n<p><\/code><\/p>\n<p>Burada:<\/p>\n<ul>\n<li><code>anahtar_ifadesi<\/code>: Yeni s\u00f6zl\u00fckteki anahtar\u0131 tan\u0131mlayan ifade.<\/li>\n<li><code>deger_ifadesi<\/code>: Yeni s\u00f6zl\u00fckteki de\u011feri tan\u0131mlayan ifade.<\/li>\n<li><code>eleman<\/code>: Iterable'daki her bir \u00f6\u011feyi temsil eden de\u011fi\u015fken.<\/li>\n<li><code>iterable<\/code>: \u00dczerinde d\u00f6ng\u00fc yap\u0131lacak liste, tuple, string veya ba\u015fka bir koleksiyon.<\/li>\n<\/ul>\n<p>\u00d6rne\u011fin, bir say\u0131 listesindeki her say\u0131y\u0131 anahtar, karesini ise de\u011fer olarak atayan bir s\u00f6zl\u00fck olu\u015ftural\u0131m:<\/p>\n<pre><code>\n  sayilar = [1, 2, 3, 4, 5]\n  sayilarin_kareleri_sozlugu = {sayi: sayi ** 2 for sayi in sayilar}\n  print(sayilarin_kareleri_sozlugu)\n  # \u00c7\u0131kt\u0131: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}\n  <\/pre>\n<p><\/code><\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, <code>sayi<\/code> hem anahtar hem de de\u011fer ifadesinde kullan\u0131larak tek sat\u0131rda bir s\u00f6zl\u00fck olu\u015fturuldu. Ba\u015fka bir \u00f6rnek olarak, bir kelime listesindeki her kelimenin uzunlu\u011funu anahtar, kelimenin kendisini ise de\u011fer olarak atayabiliriz (ancak bu durumda anahtar tekrar ederse son gelen de\u011feri al\u0131r):<\/p>\n<pre><code>\n  kelimeler = [\"elma\", \"armut\", \"muz\", \"kiraz\"]\n  kelime_uzunluklari_sozlugu = {len(kelime): kelime for kelime in kelimeler}\n  print(kelime_uzunluklari_sozlugu)\n  # \u00c7\u0131kt\u0131: {4: 'elma', 5: 'kiraz'}\n  # Not: 'armut' ve 'kiraz' ikisinin de uzunlu\u011fu 5 oldu\u011fu i\u00e7in 'kiraz' 'armut'u overwrite eder.\n  # Bu durum, anahtar ifadelerinin benzersiz olmas\u0131 gerekti\u011fi kural\u0131n\u0131 hat\u0131rlat\u0131r.\n  <\/pre>\n<p><\/code><\/p>\n<h3>Ko\u015fullu S\u00f6zl\u00fck Kapsamlar\u0131: Belirli \u00d6\u011feleri Dahil Etme<\/h3>\n<p>Liste kapsamlar\u0131nda oldu\u011fu gibi, s\u00f6zl\u00fck kapsamlar\u0131nda da <code>if<\/code> ko\u015fulu kullanarak filtreleme yapabiliriz. Bu, yaln\u0131zca belirli kriterleri kar\u015f\u0131layan anahtar-de\u011fer \u00e7iftlerini s\u00f6zl\u00fc\u011fe dahil etmenizi sa\u011flar:<\/p>\n<pre><code>\n  yeni_sozluk = {anahtar_ifadesi: deger_ifadesi for eleman in iterable if ko\u015ful}\n  <\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi, sadece 50'den b\u00fcy\u00fck notlar\u0131 i\u00e7eren bir \u00f6\u011frenci-durum s\u00f6zl\u00fc\u011f\u00fc olu\u015ftural\u0131m:<\/p>\n<pre><code>\n  ogrenci_notlari = {\"Ali\": 85, \"Ay\u015fe\": 40, \"Mehmet\": 65, \"Zeynep\": 92, \"Can\": 30}\n  gecen_ogrenciler = {\n      ogrenci: notu for ogrenci, notu in ogrenci_notlari.items() if notu >= 50\n  }\n  print(gecen_ogrenciler)\n  # \u00c7\u0131kt\u0131: {'Ali': 85, 'Mehmet': 65, 'Zeynep': 92}\n  <\/pre>\n<p><\/code><\/p>\n<p>Burada, <code>ogrenci_notlari.items()<\/code> metodu ile s\u00f6zl\u00fc\u011f\u00fcn hem anahtarlar\u0131na hem de de\u011ferlerine eri\u015fiyoruz. Ard\u0131ndan, <code>notu >= 50<\/code> ko\u015fulu sa\u011flan\u0131yorsa, o anahtar-de\u011fer \u00e7ifti yeni s\u00f6zl\u00fc\u011fe ekleniyor.<\/p>\n<h3>\u0130ki Listeden S\u00f6zl\u00fck Olu\u015fturma: Anahtar ve De\u011ferleri E\u015fle\u015ftirme<\/h3>\n<p>\u0130ki ayr\u0131 listeden bir s\u00f6zl\u00fck olu\u015fturmak, s\u00f6zl\u00fck kapsamlar\u0131n\u0131n en yayg\u0131n kullan\u0131m senaryolar\u0131ndan biridir. \u00d6rne\u011fin, bir liste anahtarlar\u0131, di\u011fer liste ise bu anahtarlara kar\u015f\u0131l\u0131k gelen de\u011ferleri i\u00e7eriyor olabilir. Python'da bu i\u015flemi kolayca yapman\u0131n en g\u00fczel yolu <code>zip()<\/code> fonksiyonunu kullanmakt\u0131r.<\/p>\n<p><code>zip()<\/code> fonksiyonu, birden fazla iterable'\u0131 birle\u015ftirerek her iterable'dan kar\u015f\u0131l\u0131k gelen \u00f6\u011feleri i\u00e7eren bir tuple ak\u0131\u015f\u0131 (iterator) d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code>\n  anahtarlar = [\"isim\", \"ya\u015f\", \"\u015fehir\"]\n  degerler = [\"Ay\u015fe\", 30, \"Ankara\"]\n\n  # zip() fonksiyonunun \u00e7\u0131kt\u0131s\u0131\n  for item in zip(anahtarlar, degerler):\n      print(item)\n  # \u00c7\u0131kt\u0131:\n  # ('isim', 'Ay\u015fe')\n  # ('ya\u015f', 30)\n  # ('\u015fehir', 'Ankara')\n  <\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi, bu <code>zip<\/code> \u00e7\u0131kt\u0131s\u0131n\u0131 s\u00f6zl\u00fck kapsam\u0131yla kullanarak iki listeden bir s\u00f6zl\u00fck olu\u015ftural\u0131m:<\/p>\n<pre><code>\n  anahtarlar = [\"\u00fcr\u00fcn_kodu\", \"\u00fcr\u00fcn_ad\u0131\", \"fiyat\"]\n  degerler = [\"P101\", \"Laptop\", 1200]\n\n  urun_bilgisi = {anahtar: deger for anahtar, deger in zip(anahtarlar, degerler)}\n  print(urun_bilgisi)\n  # \u00c7\u0131kt\u0131: {'\u00fcr\u00fcn_kodu': 'P101', '\u00fcr\u00fcn_ad\u0131': 'Laptop', 'fiyat': 1200}\n  <\/pre>\n<p><\/code><\/p>\n<p>Bu y\u00f6ntem, hem \u00e7ok okunakl\u0131 hem de verimlidir. E\u011fer iki listenin uzunluklar\u0131 farkl\u0131 olursa, <code>zip()<\/code> fonksiyonu en k\u0131sa listenin sonuna ula\u015ft\u0131\u011f\u0131nda durur.<\/p>\n<p>Dilerseniz bu i\u015flemi daha da karma\u015f\u0131k hale getirebilir, ko\u015fullar ekleyebilir veya de\u011ferleri d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz. \u00d6rne\u011fin, sadece belirli bir fiyat\u0131n \u00fczerindeki \u00fcr\u00fcnleri s\u00f6zl\u00fc\u011fe dahil edelim:<\/p>\n<pre><code>\n  urun_adlari = [\"Laptop\", \"Klavye\", \"Fare\", \"Monit\u00f6r\"]\n  urun_fiyatlari = [1200, 75, 25, 300]\n\n  pahali_urunler = {\n      ad: fiyat for ad, fiyat in zip(urun_adlari, urun_fiyatlari) if fiyat > 100\n  }\n  print(pahali_urunler)\n  # \u00c7\u0131kt\u0131: {'Laptop': 1200, 'Monit\u00f6r': 300}\n  <\/pre>\n<p><\/code><\/p>\n<p>Burada, <code>zip<\/code> ile elde edilen her bir <code>(ad, fiyat)<\/code> \u00e7ifti \u00fczerinde d\u00f6ng\u00fc yap\u0131l\u0131r. E\u011fer <code>fiyat<\/code> 100'den b\u00fcy\u00fckse, bu \u00e7ift s\u00f6zl\u00fc\u011fe eklenir. Bu, iki farkl\u0131 kaynaktan gelen veriyi tek bir anlaml\u0131 yap\u0131ya d\u00f6n\u00fc\u015ft\u00fcrmenin ne kadar esnek oldu\u011funu g\u00f6sterir.<\/p>\n<div class=\"uzman-ipucu\">\n    Uzman \u0130pucu: \u0130ki listeden s\u00f6zl\u00fck olu\u015ftururken, anahtarlar listesinin benzersiz oldu\u011fundan emin olun. Aksi takdirde, ayn\u0131 anahtara sahip sonraki \u00f6\u011feler \u00f6nceki de\u011ferin \u00fczerine yazacakt\u0131r, bu da veri kayb\u0131na yol a\u00e7abilir.\n  <\/div>\n<p><strong>Vaka Analizi 2: Kullan\u0131c\u0131 Kimlikleri ve Puanlar\u0131n\u0131 E\u015fle\u015ftirme<\/strong><\/p>\n<p>Bir \u00e7evrimi\u00e7i oyun platformunda, kullan\u0131c\u0131 kimlikleri (UUID'ler) ve bu kullan\u0131c\u0131lar\u0131n son oyunlardaki puanlar\u0131 ayr\u0131 listelerde tutuluyor. Amac\u0131m\u0131z, sadece belirli bir puan\u0131n \u00fczerindeki (\u00f6rne\u011fin 1000 puandan fazla) kullan\u0131c\u0131lar\u0131 ve puanlar\u0131n\u0131 i\u00e7eren bir s\u00f6zl\u00fck olu\u015fturmak.<\/p>\n<pre><code>\n  kullanici_idleri = [\n      \"user_001\", \"user_002\", \"user_003\", \"user_004\", \"user_005\",\n      \"user_006\", \"user_007\", \"user_008\"\n  ]\n  oyun_puanlari = [850, 1200, 950, 1500, 700, 1100, 1300, 600]\n\n  # Sadece y\u00fcksek puanl\u0131 kullan\u0131c\u0131lar\u0131 i\u00e7eren bir s\u00f6zl\u00fck olu\u015ftural\u0131m\n  yuksek_puanli_oyuncular = {\n      uid: puan for uid, puan in zip(kullanici_idleri, oyun_puanlari) if puan > 1000\n  }\n\n  print(yuksek_puanli_oyuncular)\n  # \u00c7\u0131kt\u0131: {'user_002': 1200, 'user_004': 1500, 'user_006': 1100, 'user_007': 1300}\n  <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnek, <code>zip()<\/code> ve s\u00f6zl\u00fck kapsam\u0131n\u0131 birle\u015ftirerek ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l h\u0131zl\u0131 ve etkili veri filtreleme ve e\u015fle\u015ftirme yap\u0131labilece\u011fini a\u00e7\u0131k\u00e7a g\u00f6stermektedir. Kod hem k\u0131sa hem de ne yapt\u0131\u011f\u0131n\u0131 kolayca a\u00e7\u0131kl\u0131yor.<\/p>\n<h2>Hangi Kapsam\u0131 Ne Zaman Kullanmal\u0131y\u0131z? Kar\u015f\u0131la\u015ft\u0131rmal\u0131 Bir Bak\u0131\u015f<\/h2>\n<p>Liste ve s\u00f6zl\u00fck kapsamlar\u0131, Python'da veri d\u00f6n\u00fc\u015f\u00fcm\u00fc i\u00e7in inan\u0131lmaz derecede g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r. Ancak hangi durumlarda hangisini kullanaca\u011f\u0131m\u0131z\u0131 bilmek, kodumuzun etkinli\u011fi ve okunabilirli\u011fi a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Temel fark, elbette olu\u015fturduklar\u0131 veri yap\u0131s\u0131d\u0131r: liste kapsamlar\u0131 s\u0131ral\u0131 bir liste, s\u00f6zl\u00fck kapsamlar\u0131 ise anahtar-de\u011fer \u00e7iftlerinden olu\u015fan bir s\u00f6zl\u00fck d\u00f6nd\u00fcr\u00fcr.<\/p>\n<h3>Performans ve Okunabilirlik: \u0130ki Kapsam\u0131n Art\u0131lar\u0131 ve Eksileri<\/h3>\n<p>Genel olarak, hem liste hem de s\u00f6zl\u00fck kapsamlar\u0131, e\u015fde\u011fer <code>for<\/code> d\u00f6ng\u00fclerine k\u0131yasla daha performansl\u0131d\u0131r. Bunun nedeni, Python yorumlay\u0131c\u0131s\u0131n\u0131n bu yap\u0131lar\u0131 optimize edilmi\u015f C kodu seviyesinde i\u015flemesidir. \u00d6zellikle b\u00fcy\u00fck veri setleriyle \u00e7al\u0131\u015f\u0131rken, bu performans fark\u0131 belirginle\u015febilir. Ancak, bu performans art\u0131\u015f\u0131 her zaman dramatik olmayabilir ve bazen okunabilirlik veya kullan\u0131m kolayl\u0131\u011f\u0131 daha \u00f6n planda olabilir.<\/p>\n<table border=\"1\">\n<thead>\n<tr>\n<th>\u00d6zellik<\/th>\n<th>Liste Kapsam\u0131<\/th>\n<th>S\u00f6zl\u00fck Kapsam\u0131<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>S\u00f6z Dizimi<\/strong><\/td>\n<td><code>[ifade for eleman in iterable if ko\u015ful]<\/code><\/td>\n<td><code>{anahtar: de\u011fer for eleman in iterable if ko\u015ful}<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>\u00c7\u0131kt\u0131 Tipi<\/strong><\/td>\n<td>Python listesi (s\u0131ral\u0131 koleksiyon)<\/td>\n<td>Python s\u00f6zl\u00fc\u011f\u00fc (anahtar-de\u011fer \u00e7iftleri koleksiyonu)<\/td>\n<\/tr>\n<tr>\n<td><strong>Temel Kullan\u0131m<\/strong><\/td>\n<td>Mevcut bir listeden yeni bir liste olu\u015fturma, filtreleme, d\u00f6n\u00fc\u015ft\u00fcrme.<\/td>\n<td>Mevcut iterable'dan anahtar-de\u011fer \u00e7iftleri ile yeni bir s\u00f6zl\u00fck olu\u015fturma.<\/td>\n<\/tr>\n<tr>\n<td><strong>Avantajlar<\/strong><\/td>\n<td>\n<ul>\n<li>S\u0131ral\u0131 veriler i\u00e7in ideal.<\/li>\n<li>Okunakl\u0131 ve k\u0131sad\u0131r.<\/li>\n<li>Performansl\u0131d\u0131r.<\/li>\n<\/ul>\n<\/td>\n<td>\n<ul>\n<li>H\u0131zl\u0131 anahtar tabanl\u0131 eri\u015fim sa\u011flar.<\/li>\n<li>\u0130ki listeyi e\u015fle\u015ftirmek i\u00e7in m\u00fckemmel.<\/li>\n<li>Performansl\u0131d\u0131r.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td><strong>Dezavantajlar<\/strong><\/td>\n<td>\n<ul>\n<li>Anahtar-de\u011fer ili\u015fkisi kuramaz.<\/li>\n<li>\u0130\u00e7 i\u00e7e kapsamlar karma\u015f\u0131kla\u015fabilir.<\/li>\n<\/ul>\n<\/td>\n<td>\n<ul>\n<li>Anahtarlar\u0131n benzersiz olmas\u0131 gerekir.<\/li>\n<li>S\u0131ral\u0131 eri\u015fim gerektiren durumlar i\u00e7in uygun de\u011fildir.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td><strong>Ne Zaman Kullan\u0131l\u0131r?<\/strong><\/td>\n<td>\n<ul>\n<li>Bir veri setini filtrelemek.<\/li>\n<li>Her elemana bir i\u015flem uygulamak.<\/li>\n<li>Bir dizi eleman\u0131 ba\u015fka bir diziye d\u00f6n\u00fc\u015ft\u00fcrmek.<\/li>\n<\/ul>\n<\/td>\n<td>\n<ul>\n<li>\u0130ki ili\u015fkili veri listesini birle\u015ftirmek.<\/li>\n<li>Bir veri setinden \u00f6zellik-de\u011fer e\u015fle\u015fmeleri \u00e7\u0131karmak.<\/li>\n<li>Bir s\u00f6zl\u00fc\u011f\u00fcn anahtarlar\u0131n\u0131\/de\u011ferlerini de\u011fi\u015ftirmek.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Okunabilirlik konusunda, genel kural \u015fudur: e\u011fer kapsam tek sat\u0131rda rahat\u00e7a okunabiliyor ve anla\u015f\u0131l\u0131yorsa kullan\u0131n. E\u011fer \u00e7ok karma\u015f\u0131k ifadelere, derin i\u00e7 i\u00e7e d\u00f6ng\u00fclere veya birden fazla <code>if<\/code>\/<code>else<\/code> ko\u015fuluna ihtiya\u00e7 duyuyorsan\u0131z, geleneksel <code>for<\/code> d\u00f6ng\u00fclerine geri d\u00f6nmek veya yard\u0131mc\u0131 fonksiyonlar kullanmak kodunuzu daha anla\u015f\u0131l\u0131r hale getirebilir. Unutmay\u0131n, kod sadece bilgisayar i\u00e7in de\u011fil, ayn\u0131 zamanda di\u011fer insanlar (ve gelecekteki siz) i\u00e7in de yaz\u0131l\u0131r.<\/p>\n<p>Sonu\u00e7 olarak, veri yap\u0131s\u0131n\u0131n ne olmas\u0131 gerekti\u011fi (s\u0131ral\u0131 bir koleksiyon mu yoksa anahtar-de\u011fer e\u015fle\u015fmesi mi) sorusu, hangi kapsam\u0131 kullanman\u0131z gerekti\u011fini belirleyen temel fakt\u00f6rd\u00fcr. E\u011fer sonucun s\u0131ral\u0131 bir \u00f6\u011feler koleksiyonu olmas\u0131n\u0131 istiyorsan\u0131z liste kapsam\u0131, e\u011fer benzersiz anahtarlara sahip ili\u015fkili de\u011ferler koleksiyonu olmas\u0131n\u0131 istiyorsan\u0131z s\u00f6zl\u00fck kapsam\u0131 en uygun se\u00e7enektir.<\/p>\n<h2>Kapsamland\u0131rmalar\u0131n\u0131z\u0131 Daha Etkili Kullanmak \u0130\u00e7in P\u00fcf Noktalar\u0131<\/h2>\n<p>Liste ve s\u00f6zl\u00fck kapsamlar\u0131, Python'da veri manip\u00fclasyonu i\u00e7in harika ara\u00e7lar olsa da, bunlar\u0131 en verimli ve okunabilir \u015fekilde kullanmak i\u00e7in baz\u0131 ileri d\u00fczey ipu\u00e7lar\u0131 ve en iyi uygulamalar mevcuttur. Bu p\u00fcf noktalar\u0131, kodunuzu daha da optimize etmenize ve daha karma\u015f\u0131k senaryolarda bile temiz kalmas\u0131na yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>Jenerat\u00f6r \u0130fadeleri: Bellek Verimlili\u011fi i\u00e7in Alternatif<\/h3>\n<p>B\u00fcy\u00fck veri setleriyle \u00e7al\u0131\u015f\u0131rken bellek t\u00fcketimi \u00f6nemli bir fakt\u00f6r haline gelebilir. Liste ve s\u00f6zl\u00fck kapsamlar\u0131, t\u00fcm yeni koleksiyonu bellekte olu\u015ftururken, jenerat\u00f6r ifadeleri (Generator Expressions) bunu bir anda yapmaz. Jenerat\u00f6r ifadeleri, elemanlar\u0131 \"talep \u00fczerine\" (on-the-fly) \u00fcreten bir iterable d\u00f6nd\u00fcr\u00fcrler. S\u00f6z dizimi liste kapsamlar\u0131na benzer ancak k\u00f6\u015feli parantez <code>[]<\/code> yerine parantez <code>()<\/code> kullan\u0131l\u0131r:<\/p>\n<pre><code>\n  sayilar = [1, 2, 3, 4, 5]\n  # Liste kapsam\u0131 (t\u00fcm listeyi bellekte olu\u015fturur)\n  kareler_listesi = [sayi ** 2 for sayi in sayilar]\n  print(kareler_listesi)\n\n  # Jenerat\u00f6r ifadesi (bir jenerat\u00f6r nesnesi d\u00f6nd\u00fcr\u00fcr, elemanlar\u0131 tek tek \u00fcretir)\n  kareler_jeneratoru = (sayi ** 2 for sayi in sayilar)\n  print(kareler_jeneratoru) # Bir jenerat\u00f6r nesnesi \u00e7\u0131kt\u0131s\u0131 verir\n  for kare in kareler_jeneratoru:\n      print(kare)\n  <\/pre>\n<p><\/code><\/p>\n<p>Jenerat\u00f6r ifadeleri, \u00f6zellikle bir kez \u00fczerinden ge\u00e7ilecek ve tamam\u0131n\u0131n bellekte tutulmas\u0131na gerek olmayan b\u00fcy\u00fck veri ak\u0131\u015flar\u0131 i\u00e7in idealdir. Bellek verimlili\u011fi kritik oldu\u011funda, liste kapsamlar\u0131 yerine jenerat\u00f6r ifadelerini de\u011ferlendirin.<\/p>\n<h3>Okunabilirli\u011fi Korumak: Ne Zaman D\u00f6ng\u00fclere Geri D\u00f6n\u00fclmeli?<\/h3>\n<p>Kapsamlar g\u00fc\u00e7l\u00fcd\u00fcr, ancak \"her \u015feyi tek sat\u0131rda yapmal\u0131y\u0131m\" mant\u0131\u011f\u0131na saplanmak bazen okunabilirli\u011fi d\u00fc\u015f\u00fcrebilir. E\u011fer bir kapsam:<\/p>\n<ul>\n<li>\u00c7ok uzun bir sat\u0131r haline geliyorsa (PEP 8 standard\u0131 79 karakter \u00f6nerir).<\/li>\n<li>\u00dc\u00e7 veya daha fazla i\u00e7 i\u00e7e d\u00f6ng\u00fc i\u00e7eriyorsa.<\/li>\n<li>Birden fazla <code>if\/else<\/code> ifadesini i\u00e7 i\u00e7e kullan\u0131yorsa (ternary operator).<\/li>\n<li>\u0130fadesi karma\u015f\u0131k hesaplamalar veya fonksiyon \u00e7a\u011fr\u0131lar\u0131 i\u00e7eriyorsa.<\/li>\n<\/ul>\n<p>Bu gibi durumlarda, geleneksel <code>for<\/code> d\u00f6ng\u00fcleri kullanmak veya karma\u015f\u0131k mant\u0131\u011f\u0131 yard\u0131mc\u0131 fonksiyonlara b\u00f6lmek daha mant\u0131kl\u0131 olabilir. Unutmay\u0131n, kodunuzun amac\u0131 net olmal\u0131 ve ba\u015fkalar\u0131 taraf\u0131ndan kolayca anla\u015f\u0131lmal\u0131d\u0131r. Performans kazanc\u0131, okunabilirlik kayb\u0131na de\u011fmeyebilir.<\/p>\n<pre><code>\n  # K\u00f6t\u00fc okunabilirlik \u00f6rne\u011fi (\u00c7ok karma\u015f\u0131k bir kapsam)\n  # result = [(x, y, z) for x in range(10) if x % 2 == 0 for y in range(5) if y % 3 == 0 for z in range(2) if x+y+z > 5]\n\n  # Daha okunabilir geleneksel yakla\u015f\u0131m\n  result = []\n  for x in range(10):\n      if x % 2 == 0:\n          for y in range(5):\n              if y % 3 == 0:\n                  for z in range(2):\n                      if x + y + z > 5:\n                          result.append((x, y, z))\n  <\/pre>\n<p><\/code><\/p>\n<p>\u0130kinci \u00f6rnek daha uzun olsa da, ad\u0131mlar\u0131 a\u00e7\u0131k\u00e7a g\u00f6sterdi\u011fi i\u00e7in hata ay\u0131klamas\u0131 ve anla\u015f\u0131lmas\u0131 daha kolayd\u0131r.<\/p>\n<h3>Mobil Uyumluluk ve Kodunuz: CSS Media Query \u00d6rne\u011fi<\/h3>\n<p>Bu makale Python kapsamlar\u0131 \u00fczerine olsa da, modern web uygulamalar\u0131nda veya kullan\u0131c\u0131 aray\u00fcz\u00fc geli\u015ftirirken yazd\u0131\u011f\u0131n\u0131z HTML\/CSS kodunun mobil uyumlu olmas\u0131 \u00e7ok \u00f6nemlidir. Python ile veri i\u015fleyip bir web uygulamas\u0131na sunarken, bu verinin farkl\u0131 cihazlarda d\u00fczg\u00fcn g\u00f6r\u00fcnt\u00fclenmesi kullan\u0131c\u0131 deneyimi i\u00e7in hayati \u00f6nem ta\u015f\u0131r. \u0130\u015fte basit bir CSS media query \u00f6rne\u011fi:<\/p>\n<pre><code>\n  <style>\n    \/* Varsay\u0131lan stil: Geni\u015f ekranlar i\u00e7in *\/\n    .container {\n      width: 960px;\n      margin: 0 auto;\n      padding: 20px;\n      background-color: #f0f0f0;\n    }\n\n    \/* Mobil cihazlar i\u00e7in stil (ekran geni\u015fli\u011fi 768px veya daha az oldu\u011funda) *\/\n    @media (max-width: 768px) {\n      .container {\n        width: 100%; \/* Tam geni\u015flik *\/\n        padding: 10px;\n      }\n      .content-area {\n        flex-direction: column; \/* \u0130\u00e7erik s\u00fctun halinde s\u0131ralan\u0131r *\/\n      }\n    }\n  <\/style>\n  <div class=\"container\">\n    <div class=\"content-area\">\n      <p>Bu i\u00e7erik, mobil cihazlarda farkl\u0131 g\u00f6r\u00fcnecek.<\/p>\n    <\/div>\n  <\/div>\n  <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnek, CSS'in <code>@media<\/code> kural\u0131n\u0131 kullanarak belirli ekran geni\u015fliklerine g\u00f6re stil de\u011fi\u015fiklikleri yapmay\u0131 g\u00f6sterir. Python'da yazd\u0131\u011f\u0131n\u0131z API'ler veya arka u\u00e7 hizmetleri, bu t\u00fcr mobil uyumlu \u00f6n y\u00fczlerin beslenmesine yard\u0131mc\u0131 olurken, tasar\u0131m\u0131n kendisi \u00f6n y\u00fcz taraf\u0131nda bu \u015fekilde y\u00f6netilir.<\/p>\n<h2>Veri D\u00f6n\u00fc\u015f\u00fcm\u00fcnde Kapsamlar\u0131n G\u00fcc\u00fc: \u00d6zet ve Gelecek Ad\u0131mlar<\/h2>\n<p>Bu makalede, Python'\u0131n g\u00fc\u00e7l\u00fc liste ve s\u00f6zl\u00fck kapsamlar\u0131n\u0131 derinlemesine inceledik. Geleneksel d\u00f6ng\u00fclerle kar\u015f\u0131la\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda sunduklar\u0131 okunabilirlik, k\u0131sal\u0131k ve performans avantajlar\u0131n\u0131 g\u00f6rd\u00fck. Liste kapsamlar\u0131n\u0131n nas\u0131l basit d\u00f6n\u00fc\u015f\u00fcmlerden ko\u015fullu filtrelemelere ve hatta i\u00e7 i\u00e7e yap\u0131lara kadar geni\u015f bir yelpazede kullan\u0131labilece\u011fini anlad\u0131k. Ard\u0131ndan, s\u00f6zl\u00fck kapsamlar\u0131n\u0131n anahtar-de\u011fer \u00e7iftleri olu\u015fturmadaki g\u00fcc\u00fcn\u00fc, \u00f6zellikle de iki ayr\u0131 listeden bir s\u00f6zl\u00fck olu\u015fturma senaryosunda <code>zip()<\/code> fonksiyonuyla nas\u0131l harikalar yarat\u0131labilece\u011fini ke\u015ffettik.<\/p>\n<p>Hangi kapsam\u0131 ne zaman kullanaca\u011f\u0131m\u0131za dair stratejiler geli\u015ftirdik ve kodumuzun hem etkili hem de anla\u015f\u0131l\u0131r kalmas\u0131 i\u00e7in ileri d\u00fczey ipu\u00e7lar\u0131na ve en iyi uygulamalara de\u011findik. Unutmay\u0131n, kapsamlar kodunuzu daha \"Pythonic\" hale getirmenin harika bir yoludur, ancak her zaman okunabilirli\u011fi ve s\u00fcrd\u00fcr\u00fclebilirli\u011fi \u00f6n planda tutmak en do\u011fru yakla\u015f\u0131md\u0131r. Jenerat\u00f6r ifadeleri gibi bellek dostu alternatifleri de g\u00f6z \u00f6n\u00fcnde bulundurarak, Python'da veri manip\u00fclasyonu becerilerinizi bir \u00fcst seviyeye ta\u015f\u0131yabilirsiniz.<\/p>\n<p>Art\u0131k Python'da veri d\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fc \u00e7ok daha verimli ve \u015f\u0131k bir \u015fekilde ger\u00e7ekle\u015ftirmek i\u00e7in gerekli ara\u00e7lara sahipsiniz. Bu bilgileri projelerinizde aktif olarak kullanarak pratik yapmaya devam edin; zamanla kapsamlar, Python s\u00f6z diziminin do\u011fal bir par\u00e7as\u0131 haline gelecektir. Ba\u015fka bir deyi\u015fle, daha k\u0131sa ve daha anlaml\u0131 kodlar yazarak geli\u015ftirme s\u00fcrecinizi h\u0131zland\u0131r\u0131rken, uygulaman\u0131z\u0131n performans\u0131n\u0131 da art\u0131racaks\u0131n\u0131z. \u0130\u015fte Python'\u0131n g\u00fczelli\u011fi tam da burada yat\u0131yor!<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<ul>\n<li>\n      <strong>S: Liste veya s\u00f6zl\u00fck kapsam\u0131 yerine her zaman geleneksel d\u00f6ng\u00fc kullanabilir miyim?<\/strong><br \/>\n      <strong>C:<\/strong> Evet, teorik olarak her zaman geleneksel <code>for<\/code> d\u00f6ng\u00fclerini kullanabilirsiniz. Kapsamlar, i\u015flevsellik olarak d\u00f6ng\u00fclerin daha k\u0131sa ve optimize edilmi\u015f bir versiyonudur. Ancak kapsamlar, \u00e7o\u011fu zaman daha okunakl\u0131, daha k\u0131sa ve daha performansl\u0131d\u0131r. \u00d6zellikle Python toplulu\u011funda \"Pythonic\" kod yazma prati\u011finin \u00f6nemli bir par\u00e7as\u0131d\u0131r.\n    <\/li>\n<li>\n      <strong>S: Kapsamlar performans a\u00e7\u0131s\u0131ndan ne kadar fark yarat\u0131r?<\/strong><br \/>\n      <strong>C:<\/strong> K\u00fc\u00e7\u00fck veri setlerinde performans fark\u0131 ihmal edilebilir d\u00fczeyde olabilir. Ancak b\u00fcy\u00fck veri setlerinde, kapsamlar genellikle e\u015fde\u011fer <code>for<\/code> d\u00f6ng\u00fclerine g\u00f6re \u00f6nemli \u00f6l\u00e7\u00fcde daha h\u0131zl\u0131d\u0131r. Bunun nedeni, Python yorumlay\u0131c\u0131s\u0131n\u0131n kapsamlar\u0131 C dilinde optimize edilmi\u015f dahili fonksiyonlar arac\u0131l\u0131\u011f\u0131yla y\u00fcr\u00fctmesidir, bu da Python d\u00f6ng\u00fclerinin yorumlanma y\u00fck\u00fcnden kurtar\u0131r.\n    <\/li>\n<li>\n      <strong>S: S\u00f6zl\u00fck kapsam\u0131 ile iki listeyi birle\u015ftirirken listeler farkl\u0131 uzunlukta olursa ne olur?<\/strong><br \/>\n      <strong>C:<\/strong> <code>zip()<\/code> fonksiyonu, kendisine verilen iterable'lardan en k\u0131sas\u0131n\u0131n elemanlar\u0131 bitti\u011finde durur. Dolay\u0131s\u0131yla, e\u011fer anahtar ve de\u011fer listeleriniz farkl\u0131 uzunluktaysa, olu\u015fan s\u00f6zl\u00fck en k\u0131sa listenin uzunlu\u011funa sahip olacakt\u0131r. Fazla elemanlar g\u00f6z ard\u0131 edilir.\n    <\/li>\n<li>\n      <strong>S: \u0130\u00e7 i\u00e7e kapsamlar ne zaman \u00e7ok karma\u015f\u0131k hale gelir ve ka\u00e7\u0131nmak gerekir?<\/strong><br \/>\n      <strong>C:<\/strong> Genel bir kural olarak, \u00fc\u00e7 veya daha fazla i\u00e7 i\u00e7e d\u00f6ng\u00fc i\u00e7eren kapsamlar veya \u00e7ok karma\u015f\u0131k mant\u0131k bar\u0131nd\u0131ran tek sat\u0131rl\u0131k kapsamlar genellikle okunabilirli\u011fi d\u00fc\u015f\u00fcr\u00fcr. Bu gibi durumlarda, geleneksel <code>for<\/code> d\u00f6ng\u00fclerini kullanmak, kodunuzu daha mod\u00fcler hale getirmek i\u00e7in yard\u0131mc\u0131 fonksiyonlar yazmak veya jenerat\u00f6r ifadelerini de\u011ferlendirmek daha iyi bir yakla\u015f\u0131md\u0131r.\n    <\/li>\n<li>\n      <strong>S: Jenerat\u00f6r ifadeleri ne zaman liste kapsamlar\u0131na tercih edilmelidir?<\/strong><br \/>\n      <strong>C:<\/strong> Jenerat\u00f6r ifadeleri, \u00f6zellikle \u00e7ok b\u00fcy\u00fck veri setleriyle \u00e7al\u0131\u015f\u0131rken ve olu\u015fturulan t\u00fcm elemanlar\u0131 bellekte ayn\u0131 anda tutmak istemedi\u011finizde tercih edilmelidir. Bir jenerat\u00f6r, elemanlar\u0131 tek tek, ihtiya\u00e7 duyuldu\u011funda \u00fcretir (\"lazy evaluation\"), bu da bellek kullan\u0131m\u0131n\u0131 minimize eder. E\u011fer olu\u015fturdu\u011funuz koleksiyonun \u00fczerinde sadece bir kez d\u00f6ng\u00fc yapacaksan\u0131z, jenerat\u00f6r ifadeleri daha verimli bir se\u00e7enek olabilir.\n    <\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Python&#8217;da veri manip\u00fclasyonu, her yaz\u0131l\u0131mc\u0131n\u0131n g\u00fcnl\u00fck i\u015flerinin \u00f6nemli bir par\u00e7as\u0131d\u0131r. Peki, bu i\u015flemleri daha k\u0131sa, anla\u015f\u0131l\u0131r ve performansl\u0131&hellip;","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-30404","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 Liste ve S\u00f6zl\u00fck Kapsamlar\u0131: Kapsaml\u0131 Bir Kar\u015f\u0131la\u015ft\u0131rma<\/title>\n<meta name=\"description\" content=\"Python&#039;da veri manip\u00fclasyonu, her yaz\u0131l\u0131mc\u0131n\u0131n g\u00fcnl\u00fck i\u015flerinin \u00f6nemli bir par\u00e7as\u0131d\u0131r. Peki, bu i\u015flemleri daha k\u0131sa, anla\u015f\u0131l\u0131r ve performansl\u0131 bir \u015fekilde yapman\u0131n yollar\u0131 var m\u0131? Evet, tam da bu noktada Python&#039;\u0131n &quot;kapsamland\u0131rma&quot; (comprehension) yap\u0131lar\u0131 devreye giriyor. \u00d6zellikle liste ve s\u00f6zl\u00fck kapsamlar\u0131, d\u00f6ng\u00fclerle yap\u0131lan karma\u015f\u0131k i\u015flemleri tek sat\u0131rda ifade etme g\u00fcc\u00fc sunar. Bu makalede, bu g\u00fc\u00e7l\u00fc yap\u0131lar\u0131 s\u0131f\u0131rdan ele alacak, aralar\u0131ndaki farklar\u0131 inceleyecek ve iki ayr\u0131 listeden nas\u0131l etkili bir \u015fekilde s\u00f6zl\u00fck kapsam\u0131 olu\u015fturulaca\u011f\u0131n\u0131 detayl\u0131 \u00f6rneklerle \u00f6\u011freneceksiniz. Haz\u0131rsan\u0131z, Python&#039;da veri d\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fcn b\u00fcy\u00fcl\u00fc d\u00fcnyas\u0131na dalal\u0131m!\" \/>\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-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python&#039;da Liste ve S\u00f6zl\u00fck Kapsamlar\u0131: Kapsaml\u0131 Bir Kar\u015f\u0131la\u015ft\u0131rma\" \/>\n<meta property=\"og:description\" content=\"Python&#039;da veri manip\u00fclasyonu, her yaz\u0131l\u0131mc\u0131n\u0131n g\u00fcnl\u00fck i\u015flerinin \u00f6nemli bir par\u00e7as\u0131d\u0131r. Peki, bu i\u015flemleri daha k\u0131sa, anla\u015f\u0131l\u0131r ve performansl\u0131 bir \u015fekilde yapman\u0131n yollar\u0131 var m\u0131? Evet, tam da bu noktada Python&#039;\u0131n &quot;kapsamland\u0131rma&quot; (comprehension) yap\u0131lar\u0131 devreye giriyor. \u00d6zellikle liste ve s\u00f6zl\u00fck kapsamlar\u0131, d\u00f6ng\u00fclerle yap\u0131lan karma\u015f\u0131k i\u015flemleri tek sat\u0131rda ifade etme g\u00fcc\u00fc sunar. Bu makalede, bu g\u00fc\u00e7l\u00fc yap\u0131lar\u0131 s\u0131f\u0131rdan ele alacak, aralar\u0131ndaki farklar\u0131 inceleyecek ve iki ayr\u0131 listeden nas\u0131l etkili bir \u015fekilde s\u00f6zl\u00fck kapsam\u0131 olu\u015fturulaca\u011f\u0131n\u0131 detayl\u0131 \u00f6rneklerle \u00f6\u011freneceksiniz. Haz\u0131rsan\u0131z, Python&#039;da veri d\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fcn b\u00fcy\u00fcl\u00fc d\u00fcnyas\u0131na dalal\u0131m!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-27T08:01:35+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=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Python&#8217;da Liste ve S\u00f6zl\u00fck Kapsamlar\u0131: Kapsaml\u0131 Bir Kar\u015f\u0131la\u015ft\u0131rma\",\"datePublished\":\"2025-09-27T08:01:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/\"},\"wordCount\":3910,\"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-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/\",\"name\":\"Python'da Liste ve S\u00f6zl\u00fck Kapsamlar\u0131: Kapsaml\u0131 Bir Kar\u015f\u0131la\u015ft\u0131rma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-27T08:01:35+00:00\",\"description\":\"Python'da veri manip\u00fclasyonu, her yaz\u0131l\u0131mc\u0131n\u0131n g\u00fcnl\u00fck i\u015flerinin \u00f6nemli bir par\u00e7as\u0131d\u0131r. Peki, bu i\u015flemleri daha k\u0131sa, anla\u015f\u0131l\u0131r ve performansl\u0131 bir \u015fekilde yapman\u0131n yollar\u0131 var m\u0131? Evet, tam da bu noktada Python'\u0131n \\\"kapsamland\u0131rma\\\" (comprehension) yap\u0131lar\u0131 devreye giriyor. \u00d6zellikle liste ve s\u00f6zl\u00fck kapsamlar\u0131, d\u00f6ng\u00fclerle yap\u0131lan karma\u015f\u0131k i\u015flemleri tek sat\u0131rda ifade etme g\u00fcc\u00fc sunar. Bu makalede, bu g\u00fc\u00e7l\u00fc yap\u0131lar\u0131 s\u0131f\u0131rdan ele alacak, aralar\u0131ndaki farklar\u0131 inceleyecek ve iki ayr\u0131 listeden nas\u0131l etkili bir \u015fekilde s\u00f6zl\u00fck kapsam\u0131 olu\u015fturulaca\u011f\u0131n\u0131 detayl\u0131 \u00f6rneklerle \u00f6\u011freneceksiniz. Haz\u0131rsan\u0131z, Python'da veri d\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fcn b\u00fcy\u00fcl\u00fc d\u00fcnyas\u0131na dalal\u0131m!\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python&#8217;da Liste ve S\u00f6zl\u00fck Kapsamlar\u0131: Kapsaml\u0131 Bir Kar\u015f\u0131la\u015ft\u0131rma\"}]},{\"@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 Liste ve S\u00f6zl\u00fck Kapsamlar\u0131: Kapsaml\u0131 Bir Kar\u015f\u0131la\u015ft\u0131rma","description":"Python'da veri manip\u00fclasyonu, her yaz\u0131l\u0131mc\u0131n\u0131n g\u00fcnl\u00fck i\u015flerinin \u00f6nemli bir par\u00e7as\u0131d\u0131r. Peki, bu i\u015flemleri daha k\u0131sa, anla\u015f\u0131l\u0131r ve performansl\u0131 bir \u015fekilde yapman\u0131n yollar\u0131 var m\u0131? Evet, tam da bu noktada Python'\u0131n \"kapsamland\u0131rma\" (comprehension) yap\u0131lar\u0131 devreye giriyor. \u00d6zellikle liste ve s\u00f6zl\u00fck kapsamlar\u0131, d\u00f6ng\u00fclerle yap\u0131lan karma\u015f\u0131k i\u015flemleri tek sat\u0131rda ifade etme g\u00fcc\u00fc sunar. Bu makalede, bu g\u00fc\u00e7l\u00fc yap\u0131lar\u0131 s\u0131f\u0131rdan ele alacak, aralar\u0131ndaki farklar\u0131 inceleyecek ve iki ayr\u0131 listeden nas\u0131l etkili bir \u015fekilde s\u00f6zl\u00fck kapsam\u0131 olu\u015fturulaca\u011f\u0131n\u0131 detayl\u0131 \u00f6rneklerle \u00f6\u011freneceksiniz. Haz\u0131rsan\u0131z, Python'da veri d\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fcn b\u00fcy\u00fcl\u00fc d\u00fcnyas\u0131na dalal\u0131m!","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-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/","og_locale":"tr_TR","og_type":"article","og_title":"Python'da Liste ve S\u00f6zl\u00fck Kapsamlar\u0131: Kapsaml\u0131 Bir Kar\u015f\u0131la\u015ft\u0131rma","og_description":"Python'da veri manip\u00fclasyonu, her yaz\u0131l\u0131mc\u0131n\u0131n g\u00fcnl\u00fck i\u015flerinin \u00f6nemli bir par\u00e7as\u0131d\u0131r. Peki, bu i\u015flemleri daha k\u0131sa, anla\u015f\u0131l\u0131r ve performansl\u0131 bir \u015fekilde yapman\u0131n yollar\u0131 var m\u0131? Evet, tam da bu noktada Python'\u0131n \"kapsamland\u0131rma\" (comprehension) yap\u0131lar\u0131 devreye giriyor. \u00d6zellikle liste ve s\u00f6zl\u00fck kapsamlar\u0131, d\u00f6ng\u00fclerle yap\u0131lan karma\u015f\u0131k i\u015flemleri tek sat\u0131rda ifade etme g\u00fcc\u00fc sunar. Bu makalede, bu g\u00fc\u00e7l\u00fc yap\u0131lar\u0131 s\u0131f\u0131rdan ele alacak, aralar\u0131ndaki farklar\u0131 inceleyecek ve iki ayr\u0131 listeden nas\u0131l etkili bir \u015fekilde s\u00f6zl\u00fck kapsam\u0131 olu\u015fturulaca\u011f\u0131n\u0131 detayl\u0131 \u00f6rneklerle \u00f6\u011freneceksiniz. Haz\u0131rsan\u0131z, Python'da veri d\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fcn b\u00fcy\u00fcl\u00fc d\u00fcnyas\u0131na dalal\u0131m!","og_url":"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-27T08:01:35+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Python&#8217;da Liste ve S\u00f6zl\u00fck Kapsamlar\u0131: Kapsaml\u0131 Bir Kar\u015f\u0131la\u015ft\u0131rma","datePublished":"2025-09-27T08:01:35+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/"},"wordCount":3910,"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-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/","url":"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/","name":"Python'da Liste ve S\u00f6zl\u00fck Kapsamlar\u0131: Kapsaml\u0131 Bir Kar\u015f\u0131la\u015ft\u0131rma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-27T08:01:35+00:00","description":"Python'da veri manip\u00fclasyonu, her yaz\u0131l\u0131mc\u0131n\u0131n g\u00fcnl\u00fck i\u015flerinin \u00f6nemli bir par\u00e7as\u0131d\u0131r. Peki, bu i\u015flemleri daha k\u0131sa, anla\u015f\u0131l\u0131r ve performansl\u0131 bir \u015fekilde yapman\u0131n yollar\u0131 var m\u0131? Evet, tam da bu noktada Python'\u0131n \"kapsamland\u0131rma\" (comprehension) yap\u0131lar\u0131 devreye giriyor. \u00d6zellikle liste ve s\u00f6zl\u00fck kapsamlar\u0131, d\u00f6ng\u00fclerle yap\u0131lan karma\u015f\u0131k i\u015flemleri tek sat\u0131rda ifade etme g\u00fcc\u00fc sunar. Bu makalede, bu g\u00fc\u00e7l\u00fc yap\u0131lar\u0131 s\u0131f\u0131rdan ele alacak, aralar\u0131ndaki farklar\u0131 inceleyecek ve iki ayr\u0131 listeden nas\u0131l etkili bir \u015fekilde s\u00f6zl\u00fck kapsam\u0131 olu\u015fturulaca\u011f\u0131n\u0131 detayl\u0131 \u00f6rneklerle \u00f6\u011freneceksiniz. Haz\u0131rsan\u0131z, Python'da veri d\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fcn b\u00fcy\u00fcl\u00fc d\u00fcnyas\u0131na dalal\u0131m!","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-liste-ve-sozluk-kapsamlari-kapsamli-bir-karsilastirma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Python&#8217;da Liste ve S\u00f6zl\u00fck Kapsamlar\u0131: Kapsaml\u0131 Bir Kar\u015f\u0131la\u015ft\u0131rma"}]},{"@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\/30404","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=30404"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30404\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30404"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30404"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}