Ana sayfateknolojiYazılım ve ProgramlamaDizi (Array) Nedir?
💻
Teknoloji · Konu Anlatımı

Dizi (Array) Nedir? İndeks, Boyut ve Eleman Erişimi

Programlamaya Giriş· genel· 8 dk okuma· Son güncelleme: 19 Temmuz 2026
Öğreniyo İçerik Ekibi tarafından hazırlandı · Editör: Yusufhan Seyis
Kısaca

Dizi (array), birden fazla veriyi tek bir yapı altında, sıralı konumlara yerleştirerek saklamaya yarar. Her elemana indeks adı verilen konum numarasıyla erişilir; ancak indeksin 0 veya 1’den başlaması, boyutun değişip değişmemesi ve farklı türlerin kabul edilmesi kullanılan dile ve yapıya bağlıdır.

Bu yazıda (8)
💻
Teknoloji

Dizi (Array) Nedir? İndeks, Boyut ve Eleman Erişimi

Bir program tek bir değeri saklayacaksa değişken yeterlidir; fakat bir sınıftaki notlar, sensörden gelen ölçümler veya bir oyundaki nesne konumları gibi çok sayıda benzer veriyi yönetmek gerektiğinde her değer için ayrı değişken tanımlamak pratik olmaktan çıkar. Dizi, bu verileri tek bir ad altında ve belirli bir sırayla toplar.

Diziyi anlamanın anahtarı, yalnızca 'birden fazla veri saklar' demek değildir. Verilerin hangi sırada tutulduğu, her elemana nasıl ulaşıldığı, dizinin boyutunun değişip değişmediği ve kullanılan programlama dilinin kuralları birlikte değerlendirilmelidir. Bu rehberde klasik dizilerin mantığı ile Python listesi gibi daha esnek yapıların farkını ayırarak inceleyeceğiz.

Tek değişkenden indeksli veri grubuna: Dizi neyi çözer?

Değişken tek bir değeri adlandırır. Örneğin not1 = 75 ifadesi bir öğrencinin tek sınav notunu temsil edebilir. Aynı sınıftaki beş notu not1, not2, not3 gibi ayrı adlarla tutmak mümkün olsa da bu yaklaşım, özellikle eleman sayısı arttığında tekrar üretir ve döngülerle işlemeyi zorlaştırır. notlar = [75, 82, 68, 91, 74] gibi bir dizi veya dizi benzeri yapı ise tüm notları notlar adı altında toplar.

Dizinin elemanları, yapı içindeki sıralarını belirleyen indekslerle ayırt edilir. Böylece 'üçüncü notu getir' veya 'tüm notları sırayla kontrol et' gibi işlemler tek tek değişken adları yazmadan ifade edilebilir. Bu, dizinin asıl değeridir: yalnızca veri depolamak değil, benzer veriler üzerinde düzenli işlem yapabilmektir.

Bununla birlikte dizi, her durumda uygun çözüm değildir. Verilerin anahtar-değer biçiminde tutulması, örneğin bir ürün koduna göre ürün arama, indeksli dizi yerine farklı bir veri yapısını gerektirebilir. Dizi özellikle sırası anlamlı olan ve konumuyla erişilecek veri gruplarında kullanışlıdır.

İndeks hesabı: 0. eleman ile 1. elemanı karıştırmamak

Çoğu yaygın programlama dilinde indeks 0’dan başlar. Beş elemanlı [10, 20, 30, 40, 50] dizisinde indeksler şöyle eşleşir:

  • 010
  • 120
  • 230
  • 340
  • 450

Dolayısıyla beş elemanlı ve 0 tabanlı bir dizinin son geçerli indeksi 4 olur. Genel kural, bu tür dizilerde son indeksin eleman sayısı - 1 olmasıdır. Bir programda dizi[5] yazmak, beş elemanlı bu örnekte geçerli bir konuma karşılık gelmez; çünkü indeksler 0 ile 4 arasındadır.

İndeks, elemanın sıra numarasıyla aynı olmayabilir. Günlük dilde 'üçüncü eleman' dediğimiz değer, 0 tabanlı bir dizide 2 indeksindedir. Bu nedenle problem çözme sırasında 'kaçıncı eleman?' ile 'hangi indeks?' sorularını ayrı düşünmek gerekir. Bazı diller veya özel uygulamalar 1’den başlayan indeksleme kullanabilir; bu yüzden kod yazarken kullanılan dilin kuralı kontrol edilmelidir.

İndeksin sağladığı doğrudan erişim, dizinin başlangıç konumu ve elemanların sırasının bilindiği fikrine dayanır. Ancak bellekte ardışık yerleşim, özellikle klasik sabit boyutlu diziler için kullanılan bir modeldir; her dildeki liste veya koleksiyonun fiziksel bellekte aynı biçimde tutulduğu varsayılmamalıdır.

Boyut, eleman sayısı ve sınır kontrolü nasıl yapılır?

Bu bağlamda boyut, genellikle dizinin mevcut eleman sayısını veya indekslenebilir konum sayısını ifade eder. Beş elemanlı örnekte boyut 5’tir; geçerli indeks aralığı 0 tabanlı kullanımda 0–4’tür. Kapasite ise yapının elemanları saklamak için ayırdığı bellek alanını ifade eden ayrı bir kavramdır. Özellikle dinamik dizilerde veya listelerde mevcut eleman sayısı ile kapasite aynı olmak zorunda değildir.

Bir elemana erişmeden önce şu sorular sorulmalıdır: Dizi gerçekten oluşturuldu mu? İstenen indeks 0’dan küçük mü? İstenen indeks, eleman sayısından küçük mü? Güvenli aralık 0 ≤ indeks < eleman sayısı biçiminde ifade edilebilir. Örneğin eleman sayısı 5 ise indeks = 4 geçerli, indeks = 5 geçersizdir.

Boyutun sonradan değişip değişememesi, 'dizi' sözcüğünün hangi yapıyı ifade ettiğine bağlıdır. C veya Java gibi dillerdeki klasik dizilerde oluşturma sırasında belirlenen boyut sabit olabilir. Python listeleri veya bazı dinamik koleksiyonlar ise ekleme ve silme işlemleriyle büyüyüp küçülebilir. Bu esneklik, her dildeki yapının bellek ve performans davranışının aynı olduğu anlamına gelmez.

İki boyutlu dizilerde bir eleman için iki indeks kullanılır. Örneğin bir sınıfın satır-sütun düzenindeki oturma planı koltuklar[satir][sutun] biçiminde düşünülebilir. Burada önce satır, sonra sütun seçilir. Görüntü işleme örneğinde piksellerin satır ve sütun koordinatlarıyla tutulması bu fikre dayanır.

Klasik dizi ile Python listesi aynı şey midir?

Günlük programlama anlatımında Python’daki listeler, JavaScript dizileri veya benzer koleksiyonlar sıklıkla 'dizi' diye anılır. Fakat teknik özellikleri aynı olmayabilir. Klasik bir dizi çoğunlukla belirli bir boyuta ve belirli bir veri türüne bağlı tasarlanır. Python listesi ise farklı türde değerleri aynı yapı içinde tutabilir ve boyutunu dinamik olarak değiştirebilir.

Örneğin Python’da veriler = [12, "on iki", True] ifadesi farklı türde değerleri bir araya getirir. Bu, klasik anlamda 'aynı türden elemanlardan oluşan sabit dizi' tanımıyla tam olarak örtüşmez; Python listelerinin daha esnek bir koleksiyon olduğunu gösterir. Benzer şekilde, bir dilde push, append veya benzeri bir işlemle sona eleman eklenebilmesi, o yapının sabit boyutlu klasik dizi değil, dinamik davranış sunan bir koleksiyon olabileceğine işaret eder.

Bu ayrım sınav ve kod okuma sorularında önemlidir. Soruda özellikle 'sabit boyut', 'aynı tür' veya 'indeks 0’dan başlar' ifadeleri veriliyorsa klasik dizi modeli kastediliyor olabilir. Gerçek kodda ise dilin veri yapısı belgelerine bakılmadan, bütün dizilerin aynı kurallara sahip olduğu söylenmemelidir.

Dizi üzerinde arama, sıralama ve döngü kurma

Diziler, verileri sırayla işleyen algoritmaların doğal girdileridir. Bir değerin bulunup bulunmadığını kontrol etmek için elemanlar indeks sırasına göre incelenebilir. Örneğin [12, 7, 19, 4] dizisinde 19 aranırken ilk elemandan başlanır; 12 eşleşmez, 7 eşleşmez, 19 bulunduğunda arama sonucu elde edilir. Arama sırasında bulunamayan değer için dizinin tüm geçerli elemanlarının kontrol edilmiş olması gerekir.

Sıralama işleminde de dizinin elemanlarının konumları değiştirilir. [30, 10, 20] verileri küçükten büyüğe sıralandığında sonuç [10, 20, 30] olur; ancak bu işlem, elemanların yalnızca okunması değil, konumlarının değiştirilmesi anlamına gelir. Bu yüzden programın dizinin ilk hâlini koruyup korumayacağı önceden belirlenmelidir.

Döngüler, dizi kullanımının önemli bir tamamlayıcısıdır. Dizi tek başına verileri gruplar; döngü ise bu grubun elemanlarını tekrarlı biçimde işleme imkânı verir. Örneğin tüm notların toplamını bulmak için her not sırayla toplama eklenir. Burada başlangıç değeri, döngünün kaç kez çalışacağı ve son indeksin sınırı doğru kurulmalıdır. Hatalı sınır, bir elemanın atlanmasına veya geçersiz bir konuma erişilmesine yol açabilir.

Çözümlü örnek: İndeksten eleman bulma ve sınırı kontrol etme

Verilenler: sicakliklar = [22.5, 23.1, 21.9, 24.0, 23.5] ve indekslemenin 0’dan başladığı kabul edilsin. İstenen, üçüncü ölçümün değerini bulmak ve son elemanın indeksini belirlemektir.

Adım 1: 'Üçüncü ölçüm' ile 'üçüncü indeks' ifadelerini ayırın. Üçüncü ölçüm, 0 tabanlı sistemde 2 indeksindedir.

Adım 2: Dizide sicakliklar[2] konumuna bakın. Bu konumdaki değer 21.9dur.

Adım 3: Dizinin eleman sayısını sayın. Beş değer olduğundan boyut 5’tir.

Adım 4: Son geçerli indeksi 5 - 1 hesabıyla bulun. Son indeks 4 olur ve sicakliklar[4] değeri 23.5tir.

Sonuç: Üçüncü ölçüm 21.9, son elemanın indeksi 4, son elemanın değeri 23.5tir. sicakliklar[5] ifadesi bu 0 tabanlı beş elemanlı yapı için geçerli değildir.

Çözümlü örnek: Dizide belirli bir değeri sırayla arama

Verilenler: sayilar = [14, 8, 25, 8]. İstenen, 25 değerinin hangi indekste olduğunu ve aynı değerin ikinci kez bulunup bulunmadığını belirlemektir.

Adım 1: Aramaya 0 indeksinden başlayın. sayilar[0] = 14; aranan değer 25 olmadığı için devam edilir.

Adım 2: sayilar[1] = 8; eşleşme yoktur.

Adım 3: sayilar[2] = 25; aranan değer bulunduğu için ilk bulma noktası 2 indeksidir.

Adım 4: Eğer amaç yalnızca ilk konumu bulmaksa işlem burada durabilir. Dizide aynı değerin başka konumlarda bulunup bulunmadığı da soruluyorsa kalan elemanlar incelenmelidir. sayilar[3] = 8 olduğundan 25’in ikinci bir kopyası yoktur.

Sonuç: 25 değeri 2 indeksindedir ve bu dizide yalnızca bir kez yer alır. Bu örnek, 'değeri bulmak' ile 'değerin tüm tekrarlarını bulmak' işlemlerinin aynı olmadığını gösterir.

Sık yapılan hatalar ve karıştırılan kavramlar

Boyut ile son indeksi karıştırmak: Beş elemanlı dizinin son indeksi, 0 tabanlı kullanımda 5 değil 4’tür.

Üçüncü elemanı üçüncü indekste aramak: İnsanların sıra sayımı 1’den başlar; indeksleme çoğu dilde 0’dan başladığı için üçüncü eleman 2 indeksindedir.

Her dizinin aynı türde olduğunu sanmak: Klasik dizilerde aynı tür koşulu bulunabilir; Python listeleri gibi esnek yapılarda farklı türler bir arada tutulabilir. Bu nedenle açıklama dile göre yapılmalıdır.

Her dizinin boyutunu değiştirebileceğini düşünmek: Sabit boyutlu klasik diziler ile dinamik listeler ayrılmalıdır. Ekleme işlemi desteklenmiyorsa boyut kendiliğinden büyümez.

Dizi ile değişkeni karşıt ve tamamen ayrı yapılar sanmak: Dizi de bir isimle erişilen bir veri yapısıdır; fark, tek bir değer yerine birden fazla ilişkili değeri organize etmesidir.

Diziyi sıralı veri deposu ile anahtar-değer yapısını karıştırmak: Dizide elemana konumuyla, örneğin indeksle erişilir. Bir sözlük veya harita yapısında ise erişim çoğunlukla bir anahtar üzerinden yapılır; bu iki kullanım amacı aynı değildir.

Geçersiz indeksi kontrol etmemek: Kullanıcıdan gelen veya hesaplanan indeks, geçerli aralıkla karşılaştırılmalıdır. Aksi durumda kullanılan dile bağlı olarak hata, istisna veya beklenmeyen davranış ortaya çıkabilir.

Bellekte ardışıklığı tüm koleksiyonlara genellemek: Ardışık bellek yerleşimi klasik dizilerin açıklanmasında kullanışlıdır; dinamik listelerin veya dildeki her koleksiyonun fiziksel düzeni aynı kabul edilmemelidir.

Formül

0 tabanlı bir dizide geçerli indeks koşulu: 0indeks<eleman sayısı0 \leq indeks < eleman\ sayısı. Son geçerli indeks: eleman sayısı1eleman\ sayısı - 1. Örneğin eleman sayısı 5 ise indeksler 0, 1, 2, 3 ve 4’tür.

Günlük hayatta

Bir apartmanın posta kutularını düşünün: kutular belirli bir sırada dizilmiş ve her kutunun konumu numarayla belirtilmiştir. Beş kutu varsa 0’dan başlayan bir sistemde ilk kutu 0, son kutu 4 olur. Görevli üçüncü kutuya ulaşmak için 3 numarasını değil, 2 indeksini kullanır; bu, dizilerdeki 'sıra numarası ile indeks arasındaki farkı' somutlaştırır.

Sınavda

TYT/AYT’de programlama temelleri veya bilişim sorularında önce indeksleme başlangıcını belirleyin. Soru 0 tabanlı olduğunu söylüyorsa n elemanlı dizinin son konumu n-1’dir; 'üçüncü eleman' 2 indeksine karşılık gelir. Ayrıca klasik sabit boyutlu dizi ile dinamik liste ayrımına, aynı tür eleman koşulunun dile göre değişebileceğine ve geçerli indeks sınırının üst sınıra eşit olmadığını gösteren ifadelere dikkat edin.

Sık sorulan sorular

Dizi ile değişken arasındaki temel fark nedir?

Değişken tek bir değeri adlandırmak için kullanılabilir; dizi ise birden fazla ilişkili değeri tek bir yapı altında, konumlarını belirten indekslerle tutar. Dizi de program içinde bir adla kullanılan bir veri yapısıdır.

Beş elemanlı bir dizinin son indeksi neden 4’tür?

İndeksleme 0’dan başlıyorsa ilk eleman 0 indeksindedir. Beş konum, 0, 1, 2, 3 ve 4 olarak numaralanır; bu nedenle son indeks eleman sayısından bir eksiktir.

Dizilerde indeks her zaman 0’dan mı başlar?

Çoğu yaygın programlama dilinde 0’dan başlar; ancak bu, bütün diller ve bütün veri yapıları için değişmez bir kural olarak genellenmemelidir. Soruda veya kullanılan dildeki tanımda verilen indeksleme kuralı esas alınır.

Bir dizi farklı türde verileri tutabilir mi?

Klasik diziler çoğunlukla aynı türde elemanlarla açıklanır. Python listeleri gibi daha esnek yapılarda farklı türde değerler aynı koleksiyonda bulunabilir. Bu nedenle cevap, kullanılan dile ve veri yapısına bağlıdır.

Dizinin boyutu sonradan değiştirilebilir mi?

Sabit boyutlu klasik dizilerde boyut oluşturma sırasında belirlenebilir ve sonradan değiştirilemeyebilir. Dinamik listeler veya koleksiyonlar ekleme-silme ile büyüyüp küçülebilir; ikisi aynı özellikte değildir.

Dizide üçüncü elemana nasıl erişilir?

İndeksleme 0’dan başlıyorsa üçüncü elemanın indeksi 2’dir. Örneğin [10, 20, 30] dizisinde üçüncü eleman dizi[2] ile gösterilir.

Dizi ile sözlük veya harita arasındaki fark nedir?

Dizide erişim genellikle sıra konumunu gösteren indeksle yapılır. Sözlük veya haritada ise değerler bir anahtarla ilişkilendirilir. Sıralı ve konum temelli veri için dizi, anahtar üzerinden erişim için anahtar-değer yapısı daha uygun olabilir.

Kaynaklar
SıradakiDizi