Dalam tutorial ini, anda akan belajar mengenai modul array Python, perbezaan antara tatasusunan dan senarai, dan bagaimana dan kapan menggunakannya dengan bantuan contoh.
Nota: Apabila orang menyebut tatasusunan dalam Python, lebih kerap daripada itu, mereka bercakap mengenai senarai Python . Sekiranya demikian, lawati tutorial senarai Python.
Dalam tutorial ini, kita akan memfokuskan pada modul bernama array
. The array
modul membolehkan kita untuk menyimpan koleksi nilai angka.
Membuat Python Arrays
Untuk membuat susunan nilai angka, kita perlu mengimport array
modul. Sebagai contoh:
import array as arr a = arr.array('d', (1.1, 3.5, 4.5)) print(a)
Pengeluaran
tatasusunan ('d', (1.1, 3.5, 4.5))
Di sini, kami membuat pelbagai float
jenis. Huruf itu d
adalah kod jenis. Ini menentukan jenis larik semasa penciptaan.
Kod jenis yang biasa digunakan disenaraikan seperti berikut:
Kod | Jenis C | Jenis Python | Bait min |
---|---|---|---|
b | char ditandatangani | int | 1 |
B | char tidak bertanda tangan | int | 1 |
u | PY_UNICODE | Unikod | 2 |
h | ditandatangani pendek | int | 2 |
H | tidak bertanda pendek | int | 2 |
i | ditandatangani int | int | 2 |
I | int tidak bertanda tangan | int | 2 |
l | ditandatangani lama | int | 4 |
L | tidak bertanda panjang | int | 4 |
f | terapung | terapung | 4 |
d | berganda | terapung | 8 |
Kami tidak akan membincangkan pelbagai jenis C dalam artikel ini. Kami akan menggunakan dua jenis kod dalam keseluruhan artikel ini: i
untuk bilangan bulat dan d
untuk apungan.
Catatan : u
Kod jenis untuk watak Unicode sudah tidak digunakan lagi sejak versi 3.3. Elakkan menggunakan sebanyak mungkin.
Mengakses Python Array Elements
Kami menggunakan indeks untuk mengakses elemen array:
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))
Pengeluaran
Elemen pertama: 2 Unsur kedua: 4 Unsur terakhir: 8
Catatan : Indeks bermula dari 0 (bukan 1) yang serupa dengan senarai.
Menghiris Susunan Python
Kami dapat mengakses pelbagai item dalam array dengan menggunakan operator pemotong :
.
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
Pengeluaran
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))
Menukar dan Menambah Elemen
Susunan berubah-ubah; elemen mereka boleh diubah dengan cara yang serupa seperti senarai.
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))
Pengeluaran
array ('i', (0, 2, 3, 5, 7, 10)) array ('i', (0, 2, 4, 6, 8, 10))
Kita dapat menambahkan satu item ke array menggunakan append()
kaedah, atau menambahkan beberapa item menggunakan extend()
kaedah tersebut.
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))
Pengeluaran
array ('i', (1, 2, 3, 4)) array ('i', (1, 2, 3, 4, 5, 6, 7))
Kami juga dapat menggabungkan dua tatasusunan menggunakan +
operator.
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)
Pengeluaran
susunan ('i', (1, 3, 5, 2, 4, 6))
Mengeluarkan Elemen Python Array
Kita boleh memadam satu atau lebih item dari array menggunakan pernyataan del Python.
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
Pengeluaran
array ('i', (1, 2, 3, 4)) Jejak (panggilan terakhir terakhir): Fail "", baris 9, dicetak (nombor) # Ralat: array tidak ditentukan NameError: name 'number' is tidak ditakrifkan
Kita dapat menggunakan remove()
kaedah untuk menghapus item yang diberikan, dan pop()
metode untuk menghapus item pada indeks yang diberikan.
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))
Pengeluaran
tatasusunan ('i', (10, 11, 12, 13)) 12 array ('i', (10, 11, 13))
Lihat halaman ini untuk mengetahui lebih lanjut mengenai kaedah array dan array Python.
Python Menyenaraikan Susunan Vs
Di Python, kita boleh menganggap senarai sebagai tatasusunan. Namun, kami tidak dapat mengekang jenis elemen yang tersimpan dalam senarai. Sebagai contoh:
# elements of different types a = (1, 3.5, "Hello")
Sekiranya anda membuat tatasusunan menggunakan array
modul, semua elemen larik mestilah dari jenis angka yang sama.
import array as arr # Error a = arr.array('d', (1, 3.5, "Hello"))
Pengeluaran
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.
Kecuali anda tidak benar-benar memerlukan array (modul array mungkin diperlukan untuk berinteraksi dengan kod C), penggunaan modul array tidak digalakkan.