Bu eğitimde, Python dizi modülü, diziler ve listeler arasındaki fark ve örnekler yardımıyla bunların nasıl ve ne zaman kullanılacağını öğreneceksiniz.
Not: İnsanlar Python'da diziler dediğinde, çoğu zaman Python listelerinden bahsederler . Durum buysa, Python listesi eğitimini ziyaret edin.
Bu eğitimde, adlı bir modüle odaklanacağız array
. array
Modül bize sayısal değerler bir koleksiyon saklamasına olanak sağlar.
Python Dizileri Oluşturma
Sayısal değerler dizisi oluşturmak için array
modülü içe aktarmamız gerekir . Örneğin:
import array as arr a = arr.array('d', (1.1, 3.5, 4.5)) print(a)
Çıktı
dizi ('d', (1.1, 3.5, 4.5))
Burada bir tür dizisi oluşturduk float
. Harf d
bir tür kodudur. Bu, oluşturma sırasında dizinin türünü belirler.
Yaygın olarak kullanılan tür kodları aşağıda listelenmiştir:
Kod | C Tipi | Python Türü | Min bayt |
---|---|---|---|
b | imzalı karakter | int | 1 |
B | imzasız karakter | int | 1 |
u | Py_UNICODE | Unicode | 2 |
h | kısa imzalı | int | 2 |
H | imzasız kısa | int | 2 |
i | imzalı int | int | 2 |
I | imzasız int | int | 2 |
l | uzun imzaladı | int | 4 |
L | imzasız uzun | int | 4 |
f | yüzer | yüzer | 4 |
d | çift | yüzer | 8 |
Bu makalede farklı C türlerini tartışmayacağız. Bu makalenin tamamında iki tür kodu kullanacağız: i
tamsayılar için ve d
kayan değerler için.
Not : u
Unicode karakterlerin tür kodu 3.3 sürümünden beri kullanımdan kaldırılmıştır. Mümkün olduğunca çok kullanmaktan kaçının.
Python Dizi Öğelerine Erişim
Bir dizinin öğelerine erişmek için indisler kullanıyoruz:
import array as arr a = arr.array('i', (2, 4, 6, 8)) print("First element:", a(0)) print("Second element:", a(1)) print("Last element:", a(-1))
Çıktı
İlk eleman: 2 İkinci eleman: 4 Son eleman: 8
Not : Dizin, listelere benzer şekilde 0'dan (1 değil) başlar.
Python Dizilerini Dilimleme
Dilimleme operatörünü kullanarak bir dizideki bir dizi öğeye erişebiliriz :
.
import array as arr numbers_list = (2, 5, 62, 5, 42, 52, 48, 5) numbers_array = arr.array('i', numbers_list) print(numbers_array(2:5)) # 3rd to 5th print(numbers_array(:-5)) # beginning to 4th print(numbers_array(5:)) # 6th to end print(numbers_array(:)) # beginning to end
Çıktı
array ('i', (62, 5, 42)) array ('i', (2, 5, 62)) array ('i', (52, 48, 5)) array ('i', (2 , 5, 62, 5, 42, 52, 48, 5))
Eleman Değiştirme ve Ekleme
Diziler değiştirilebilir; öğeleri listelere benzer şekilde değiştirilebilir.
import array as arr numbers = arr.array('i', (1, 2, 3, 5, 7, 10)) # changing first element numbers(0) = 0 print(numbers) # Output: array('i', (0, 2, 3, 5, 7, 10)) # changing 3rd to 5th element numbers(2:5) = arr.array('i', (4, 6, 8)) print(numbers) # Output: array('i', (0, 2, 4, 6, 8, 10))
Çıktı
array ('i', (0, 2, 3, 5, 7, 10)) array ('i', (0, 2, 4, 6, 8, 10))
append()
Yöntemi kullanarak diziye bir öğe ekleyebilir veya extend()
yöntemi kullanarak birkaç öğe ekleyebiliriz .
import array as arr numbers = arr.array('i', (1, 2, 3)) numbers.append(4) print(numbers) # Output: array('i', (1, 2, 3, 4)) # extend() appends iterable to the end of the array numbers.extend((5, 6, 7)) print(numbers) # Output: array('i', (1, 2, 3, 4, 5, 6, 7))
Çıktı
array ('i', (1, 2, 3, 4)) array ('i', (1, 2, 3, 4, 5, 6, 7))
+
Operatör kullanarak iki diziyi de birleştirebiliriz .
import array as arr odd = arr.array('i', (1, 3, 5)) even = arr.array('i', (2, 4, 6)) numbers = arr.array('i') # creating empty array of integer numbers = odd + even print(numbers)
Çıktı
dizi ('i', (1, 3, 5, 2, 4, 6))
Python Dizi Öğelerini Kaldırma
Python'un del ifadesini kullanarak bir diziden bir veya daha fazla öğeyi silebiliriz.
import array as arr number = arr.array('i', (1, 2, 3, 3, 4)) del number(2) # removing third element print(number) # Output: array('i', (1, 2, 3, 4)) del number # deleting entire array print(number) # Error: array is not defined
Çıktı
array ('i', (1, 2, 3, 4)) Geri izleme (en son çağrı): Dosya "", satır 9, baskıda (numara) # Hata: dizi tanımlanmadı Ad Hatası: ad 'sayı' tanımlanmamış
Biz kullanabilirsiniz remove()
verilen madde ve kaldırmak için yöntem pop()
Belirtilen dizinde bir öğe kaldırmak için yöntem.
import array as arr numbers = arr.array('i', (10, 11, 12, 12, 13)) numbers.remove(12) print(numbers) # Output: array('i', (10, 11, 12, 13)) print(numbers.pop(2)) # Output: 12 print(numbers) # Output: array('i', (10, 11, 13))
Çıktı
dizi ('i', (10, 11, 12, 13)) 12 dizi ('i', (10, 11, 13))
Python dizisi ve dizi yöntemleri hakkında daha fazla bilgi edinmek için bu sayfayı kontrol edin.
Python Vs Dizilerini Listeler
Python'da listeleri diziler olarak ele alabiliriz. Ancak, bir listede saklanan elemanların türünü sınırlayamayız. Örneğin:
# elements of different types a = (1, 3.5, "Hello")
array
Modülü kullanarak diziler oluşturursanız , dizinin tüm öğeleri aynı sayısal türde olmalıdır.
import array as arr # Error a = arr.array('d', (1, 3.5, "Hello"))
Çıktı
Traceback (most recent call last): File "", line 3, in a = arr.array('d', (1, 3.5, "Hello")) TypeError: must be real number, not str
When to use arrays?
Lists are much more flexible than arrays. They can store elements of different data types including strings. And, if you need to do mathematical computation on arrays and matrices, you are much better off using something like NumPy.
So, what are the uses of arrays created from the Python array module?
The array.array
type is just a thin wrapper on C arrays which provides space-efficient storage of basic C-style data types. If you need to allocate an array that you know will not change, then arrays can be faster and use less memory than lists.
Dizilere gerçekten ihtiyacınız olmadıkça (C kodu ile arayüz için dizi modülü gerekebilir), dizi modülünün kullanılması tavsiye edilmez.