Modul ini mendefinisikan tipe objek yang secara kompak dapat mewakili array nilai dasar. karakter, bilangan bulat, angka floating point. Array adalah tipe urutan dan berperilaku sangat mirip dengan daftar, kecuali bahwa tipe objek yang disimpan di dalamnya dibatasi. Tipe ditentukan pada waktu pembuatan objek dengan menggunakan kode tipe, yang merupakan karakter tunggal. Kode jenis berikut ditentukan
Ketik kode
Tipe C
Jenis Piton
Ukuran minimum dalam byte
Catatan
'b'_
karakter yang ditandatangani
int
1
'B'
karakter yang tidak ditandatangani
int
1
'u'
wchar_t
Karakter Unicode
2
(1)
'h'_
ditandatangani singkat
int
2
'H'
singkat tanpa tanda tangan
int
2
'i'_
ditandatangani int
int
2
'I'
int yang tidak ditandatangani
int
2
'l'_
ditandatangani panjang
int
4
array_0
panjang tanpa tanda tangan
int
4
array_1
ditandatangani lama
int
8
array_2
lama tidak ditandatangani
int
8
array_3
mengambang
mengambang
4
array_4
dobel
mengambang
8
Catatan
Itu bisa 16 bit atau 32 bit tergantung pada platformnya
Berubah di versi 3. 9. array5 sekarang menggunakan array6 sebagai tipe C alih-alih tidak digunakan lagi array7. Perubahan ini tidak memengaruhi perilakunya karena array7 adalah alias dari array6 sejak Python 3. 3.
Tidak digunakan lagi sejak versi 3. 3, akan dihapus di versi 4. 0
Representasi sebenarnya dari nilai ditentukan oleh arsitektur mesin (tegasnya, oleh implementasi C). Ukuran sebenarnya dapat diakses melalui atribut
Modul mendefinisikan item berikut
array. kode ketikSebuah string dengan semua kode jenis yang tersedia
Modul mendefinisikan jenis berikut
kelas array. array(kode ketik[ , penginisialisasi])Array baru yang itemnya dibatasi oleh kode jenis, dan diinisialisasi dari nilai penginisialisasi opsional, yang harus berupa daftar, a , atau iterable di atas elemen dari tipe yang sesuai
Jika diberi daftar atau string, penginisialisasi diteruskan ke metode , , atau array baru (lihat di bawah) untuk menambahkan item awal ke array. Jika tidak, penginisialisasi iterable diteruskan ke metode
Objek array mendukung operasi urutan biasa dari pengindeksan, pemotongan, penggabungan, dan perkalian. Saat menggunakan penetapan irisan, nilai yang ditetapkan harus berupa objek larik dengan kode jenis yang sama; . Objek array juga mengimplementasikan antarmuka buffer, dan dapat digunakan di mana pun didukung
Memunculkan 'b'_6 dengan argumen 'b'7, 'b'8
kode ketikKarakter kode jenis yang digunakan untuk membuat larik
itemsizePanjang dalam byte dari satu item larik dalam representasi internal
tambahkan(x)Tambahkan item baru dengan nilai x ke akhir array
buffer_info()Mengembalikan tuple 'b'9 memberikan alamat memori saat ini dan panjang elemen buffer yang digunakan untuk menyimpan konten array. Ukuran buffer memori dalam byte dapat dihitung sebagai 'B'0. Ini terkadang berguna saat bekerja dengan antarmuka I/O tingkat rendah (dan tidak aman) yang memerlukan alamat memori, seperti operasi 'B'1 tertentu. Angka yang dikembalikan valid selama array ada dan tidak ada operasi pengubahan panjang yang diterapkan padanya
Catatan
Saat menggunakan objek array dari kode yang ditulis dalam C atau C++ (satu-satunya cara untuk memanfaatkan informasi ini secara efektif), lebih masuk akal untuk menggunakan antarmuka buffer yang didukung oleh objek array. Metode ini dipertahankan untuk kompatibilitas mundur dan harus dihindari dalam kode baru. Antarmuka buffer didokumentasikan dalam
byteswap()"Byteswap" semua item dari array. Ini hanya didukung untuk nilai yang berukuran 1, 2, 4, atau 8 byte; . Ini berguna saat membaca data dari file yang ditulis pada mesin dengan urutan byte yang berbeda
Mengembalikan jumlah kemunculan x dalam array
memperpanjang(dapat diubah)Tambahkan item dari iterable ke akhir array. Jika iterable adalah array lain, ia harus memiliki kode tipe yang persis sama; . Jika iterable bukan array, itu harus iterable dan elemennya harus tipe yang tepat untuk ditambahkan ke array
daribyte(s)Menambahkan item dari string, menginterpretasikan string sebagai larik nilai mesin (seolah-olah telah dibaca dari file menggunakan metode ini)
Baru di versi 3. 2. 'B'_5 diubah namanya menjadi untuk kejelasan.
fromfile(f , n)Baca n item (sebagai nilai mesin) dari f dan tambahkan ke akhir array. Jika kurang dari n item yang tersedia, dimunculkan, tetapi item yang tersedia masih dimasukkan ke dalam array
dari daftar(daftar)Tambahkan item dari daftar. Ini setara dengan 'B'_8 kecuali jika ada kesalahan jenis, array tidak berubah
fromunicode(s)Perluas larik ini dengan data dari string unicode yang diberikan. Array harus bertipe 'u' array; . Gunakan 'u'_1 untuk menambahkan data Unicode ke larik jenis lain
indeks(x[ , mulai[ , berhenti]])Kembalikan i terkecil sehingga i adalah indeks kemunculan pertama x dalam array. Argumen opsional mulai dan berhenti dapat ditentukan untuk mencari x dalam subbagian dari array. Naikkan jika x tidak ditemukan
Berubah di versi 3. 10. Menambahkan parameter start dan stop opsional.
masukkan(i , x)Masukkan item baru dengan nilai x ke dalam array sebelum posisi i. Nilai negatif diperlakukan sebagai relatif terhadap akhir array
pop([i])Menghapus item dengan indeks i dari array dan mengembalikannya. Argumen opsional default ke 'u'_3, sehingga secara default item terakhir dihapus dan dikembalikan
hapus(x)Hapus kejadian pertama x dari array
terbalik()Balik urutan item dalam array
tobyte()Ubah array menjadi array nilai mesin dan kembalikan representasi byte (urutan byte yang sama yang akan ditulis ke file dengan metode. )
Baru di versi 3. 2. 'u'5 diganti namanya menjadi untuk kejelasan.
berkas(f)Tulis semua item (sebagai nilai mesin) ke f
daftar()Ubah array menjadi daftar biasa dengan item yang sama
kode uni()Ubah array menjadi string unicode. Array harus bertipe 'u' array; . Gunakan 'u'_9 untuk mendapatkan string unicode dari array jenis lain
Ketika objek array dicetak atau diubah menjadi string, itu direpresentasikan sebagai 'h'0. Penginisialisasi dihilangkan jika array kosong, selain itu berupa string jika kode jenisnya adalah 'u', selain itu berupa daftar angka. String dijamin dapat diubah kembali menjadi array dengan tipe dan nilai yang sama menggunakan , asalkan kelas telah diimpor menggunakan 'h'4. Contoh
array('l') array('u', 'hello \u2641') array('l', [1, 2, 3, 4, 5]) array('d', [1.0, 2.0, 3.14])
Lihat juga
ModulMengemas dan membongkar data biner heterogen
ModulMengemas dan membongkar data Representasi Data Eksternal (XDR) seperti yang digunakan di beberapa sistem panggilan prosedur jarak jauh