PYTHON Diziler
- Python’un yerleşik array modülü, hafif ve düşük seviyeli bir dizi yapısı sunar. Bu modül, aynı türden verilerden oluşan diziler (homojen diziler) oluşturmaya olanak tanır ve özellikle bellek açısından verimli dizi işlemleri yapmak için idealdir.
- Sadece belirli veri tiplerini destekler ve Python listeleri gibi heterojen veri tipi barındıramaz.
- array.array() fonksiyonu kullanılarak bir dizi oluşturulur.
import array
# Tam sayılardan oluşan bir dizi oluşturma
int_array = array.array('i', [1, 2, 3, 4, 5])
print(int_array)
# Çıktı: array('i', [1, 2, 3, 4, 5])
- Dizinin sonuna yeni bir eleman eklemek için append() fonksiyonu kullanılır.
int_array.append(6)
print(int_array)
# Çıktı: array('i', [1, 2, 3, 4, 5, 6])
- remove(x): Belirtilen değeri bulur ve siler. İlk bulduğu değeri siler; birden fazla varsa diğerlerine dokunmaz.
- pop(i): Verilen indeksteki elemanı kaldırır ve değeri döndürür. İndeks belirtilmezse son elemanı çıkarır.
int_array.remove(3)
print(int_array)
# Çıktı: array('i', [1, 2, 4, 5, 6])
int_array.pop(1)
print(int_array)
# Çıktı: array('i', [1, 4, 5, 6])
- Dizileri dilimlerken komut [başlangıç:bitiriş] şeklinde yazılır. Bitiş indeksi dahil edilmez.
sub_array = int_array[1:3]
print(sub_array)
# Çıktı: array('i', [4, 5])
- len() fonksiyonunu kullanarak dizinin uzunluğunu bulabilirsiniz.
print(len(int_array))
# Çıktı: 4
Örnek: 10 kişiye ait yaş bilgilerini içeren bir dizi oluşturacağız. Ardından, bu diziye 5 yeni yaş ekleyip var olan 3 yaş bilgisini sileceğiz. Son olarak, dizinin eleman sayısını yazdıracağız.
import array
# 10 kişiye ait yaş bilgileri
yas_dizisi = array.array('i', [25, 30, 22, 18, 35, 40, 27, 24, 29, 31])
# Yeni yaşları ekleyelim
yas_dizisi.append(26)
yas_dizisi.append(32)
yas_dizisi.append(21)
yas_dizisi.append(28)
yas_dizisi.append(33)
# Var olan 3 yaşı silelim
yas_dizisi.remove(30) # 30 yaşını siliyoruz
yas_dizisi.remove(18) # 18 yaşını siliyoruz
yas_dizisi.remove(25) # 25 yaşını siliyoruz
# Dizinin eleman sayısını yazdırma
print("Dizideki yaş sayısı:", len(yas_dizisi))
print("Güncellenmiş yaş dizisi:", yas_dizisi)
Örnek: 10 öğrenciye ait sınav notlarını içeren bir dizi oluşturduktan sonra, 1., 3. ve 7. sıradaki öğrencilerin notlarını sırasıyla 60, 75 ve 85 olarak güncellenmiş haliyle yazın.
import array
# 25 öğrenciye ait sınav notları
notlar_dizisi = array.array('i', [50, 65, 80, 45, 90, 75, 60, 85, 70, 88,
55, 72, 68, 92, 66, 77, 81, 63, 58, 84,
69, 73, 80, 89, 91, 78, 67])
# 1., 3. ve 7. sıradaki öğrencilerin notlarını güncelle
notlar_dizisi[0] = 60 # 1. sıradaki öğrencinin notu 60 olarak güncelleniyor
notlar_dizisi[2] = 75 # 3. sıradaki öğrencinin notu 75 olarak güncelleniyor
notlar_dizisi[6] = 85 # 7. sıradaki öğrencinin notu 85 olarak güncelleniyor
# Güncellenmiş notlar dizisini yazdıralım
print("Güncellenmiş notlar dizisi:", notlar_dizisi)
Örnek: 15 elemanlı bir sayı dizisindeki tüm negatif değerleri çıkaran ve ardından sadece 5’in katı olan indekslerdeki elemanları dilimleyin. Son olarak, bu güncellenmiş dizinin eleman sayısı yazdırın.
import array
# 15 elemanlı bir sayı dizisi
sayi_dizisi = array.array('i', [10, -3, 25, -7, 15, -1, 30, 17, -5, 50, 8, -9, 75, -4, 20])
# Negatif değerleri çıkarma
pozitif_sayi_dizisi = array.array('i', [x for x in sayi_dizisi if x >= 0])
# 5'in katı olan indekslerdeki değerleri dilimleyelim
dilimlenmis_dizi = pozitif_sayi_dizisi[::5] # 5'in katı olan indeksler, 0, 5, 10...
# Dilimlenmiş dizinin eleman sayısını yazdırma
print("Dilimlenmiş dizinin eleman sayısı:", len(dilimlenmis_dizi))
print("Dilimlenmiş dizi:", dilimlenmis_dizi)