Skip to main content

Python Dizilerine Eleman Ekleme

Bu rehberde ne öğreneceksiniz?

Bu rehberde, Python’daki dizi (array) yapısına eleman eklemenin farklı yollarını göreceksiniz.
Python’da yerleşik bir dizi tipi olmasa da, array modülü ve NumPy kütüphanesiyle tek veya çok boyutlu dizilerde:

  • Tekil eleman ekleme (append())
  • Çoklu eleman ekleme (extend())
  • Belirli konuma ekleme (insert()) işlemlerini adım adım uygulayabileceksiniz.

1. Python Dizi Kavramı

Python’un yerleşik List yapısı esnektir, fakat büyük sayısal verilerde array veya NumPy daha verimlidir.

  • array Modülü: Tek tip (int, float) veriler için basit ve hızlı.
  • NumPy Modülü: Bilimsel işlemler, matris hesaplamaları ve çok boyutlu diziler için optimize edilmiştir.

💡 Not: Dizilere yalnızca aynı veri tipinde elemanlar eklenebilir.


2. array Modülü ile Eleman Ekleme

array modülünde, diziyi doğrudan değiştiren üç temel yöntem vardır.

a. İki Diziyi Birleştirme (+ Operatörü)

import array

arr1 = array.array('i', [10, 20, 30])
arr2 = array.array('i', [40, 50, 60])

arr3 = arr1 + arr2
print("Birleşmiş dizi:", arr3)

Bu örnek, iki diziyi + operatörüyle birleştirir.

Çıktı:

array('i', [10, 20, 30, 40, 50, 60])

b. Sona Tek Eleman Ekleme – append()

import array

arr1 = array.array('i', [1, 2, 3])
arr1.append(4)
print(arr1)

append() dizinin sonuna tek bir eleman ekler.

Çıktı:

array('i', [1, 2, 3, 4])

c. Sona Çoklu Eleman Ekleme – extend()

import array

arr1 = array.array('i', [1, 2, 3])
arr1.extend([4, 5, 6])
print(arr1)

extend() birden fazla elemanı dizinin sonuna ekler.

Çıktı:

array('i', [1, 2, 3, 4, 5, 6])

d. Belirli İndekse Ekleme – insert(i, x)

import array

arr1 = array.array('i', [1, 2, 3])
arr1.insert(0, 10)
print(arr1)

insert() belirtilen konuma eleman ekler.

Çıktı:

array('i', [10, 1, 2, 3])

💡 append() vs extend() Farkı

arr = [1, 2, 3]
arr.append([4, 5])
# [1, 2, 3, [4, 5]]

arr.extend([4, 5])
# [1, 2, 3, 4, 5]

append() tek bir nesneyi ekler (listeyi tek eleman olarak alır). extend() ise listenin tüm elemanlarını tek tek ekler.

3. NumPy Dizilerine Eleman Ekleme

NumPy dizileri, performans için sabit boyutludur. Bu nedenle append() veya insert() işlemleri orijinal diziyi değiştirmez, yeni bir dizi döndürür.

NumPy kurulu değilse:

pip install numpy

a. numpy.append() kodu

import numpy as np

np_arr1 = np.array([[1, 2], [3, 4]])
np_arr2 = np.array([[10, 20], [30, 40]])

# Axis belirtilmezse düzleştirir
flat = np.append(np_arr1, np_arr2, axis=None)

# Satır ekleme
rows = np.append(np_arr1, np_arr2, axis=0)

# Sütun ekleme
cols = np.append(np_arr1, np_arr2, axis=1)

append() satır (axis=0) veya sütun (axis=1) bazlı ekleme yapar.

b. numpy.insert() kodu

import numpy as np

np_arr1 = np.array([[1, 2], [4, 5]])
np_arr2 = np.array([[10, 20], [30, 40]])

# Satır ekleme
insert_row = np.insert(np_arr1, 1, np_arr2, axis=0)

# Sütun ekleme
insert_col = np.insert(np_arr1, 1, np_arr2, axis=1)

insert() belirtilen eksende (axis) ekleme yapar.

4. Performans Özeti

MetotAçıklamaOrtalama KarmaşıklıkNot
append()Tek eleman ekler.O(1)En hızlı yöntem
extend()Çoklu eleman ekler.O(k)k: eklenen eleman sayısı
insert()Belirli konuma ekler.O(n)n: dizi boyu
numpy.append()Yeni dizi döndürür.O(n)Hafif kopyalama işlemi yapar
numpy.insert()Eksene göre ekleme yapar.O(n)Kopyalama maliyeti vardır

🧠 Big-O Açıklaması:

  • O(1): Sabit süreli işlem.
  • O(n): Dizi boyu arttıkça işlem süresi uzar.

Sıkça Sorulan Sorular (SSS)

array ile list farkı nedir? list farklı veri tiplerini tutabilir, array ise yalnızca tek tip sayısal verileri tutar ve belleği daha verimli kullanır.

NumPy neden orijinal diziyi değiştirmiyor? Çünkü NumPy dizileri sabit boyutludur. Eklediğinizde yeni bir kopya oluşturur.

append() ile extend() farkı nedir? append() bir nesneyi ekler, extend() ise içeriğini tek tek ekler.

Hangi yöntem daha hızlıdır? Sonuna append() veya extend() ile ekleme en hızlı olandır. Başına insert() ile ekleme en yavaştır.

🎯 Sonuç

Python’da dizi manipülasyonu, kullanılan yapıya göre değişir. Performans farklarını, veri tipi kısıtlarını ve metod davranışlarını bilmek hem hız hem de hata yönetimi açısından kritiktir.

Veri analizi ve bilimsel hesaplamalarınızı Rabisu Bulut platformunda hızlandırın. Yüksek performanslı sunucu örnekleri (instance) ile NumPy işlemlerini anında test edin 🚀