selanjutnya kita berhenti di objek wisata kami adalah Python list. list adalah jenis objek koleksi pesanan paling fleksibel Python. Tidak seperti string, list dapat berisi objek apa pun: angka, string, dan bahkan list lainnya. Juga, tidak seperti string, daftar dapat diubah pada tempatnya oleh penugasan ke offset dan irisan, daftar pemanggilan metode, pernyataan penghapusan, dan banyak lagi — mereka dapat berubah-ubah.
| Operation | Interpretation | |||
| L = [] | list kosong | |||
| L = [123, 'abc', 1.23, {}] | empat item : indexes 0..3 | |||
| L = ['Bob', 40.0, ['dev', 'mgr']] | sublists tang bertenger | |||
| L = list('spam') | list item yg dapat diulang | |||
| L = list(range(-4, 4)) | list bilangan bulat berturut-turut | |||
| L[i] | Index, | |||
| L[i][j] | index of index | |||
| L[i:j] | slice, | |||
| len(L) | length | |||
| L1 + L2 | penambahan | |||
| L * 3 | pengulangan | |||
| for x in L: print(x) | Iteration, | |||
| 3 in L | membership | |||
| L.append(4) | Methods: growing | |||
| L.extend([5,6,7]) | Methods: menambahkan | |||
| L.insert(i, X) | Methods: sisipkan | |||
| L.index(X) | Methods: searching | |||
| L.count(X) | Methods: hitung | |||
| L.sort() | Methods: sorting | |||
| L.reverse() | Methods: reversing, | |||
| L.copy() | Methods:kopi | |||
| L.clear() | Methods: hapus | |||
| L.pop(i) | Methods: Statement | |||
| L.remove(X) | Methods:menghilangkan | |||
| del L[i] | Index assignment, | |||
| del L[i:j] | slice assignment | |||
| L[i:j] = [] | ||||
| L[i] = 3 | ||||
| L[i:j] = [4,5,6] | ||||
| L = [x**2 for x in range(5)] | list(map(ord, 'spam')) |
Karena mereka adalah urutan, daftar mendukung banyak dari operasi yang sama sebagai string. Misalnya, daftar menanggapi + dan * operator seperti string — artinya rangkai dan pengulangan di sini juga, kecuali bahwa hasilnya adalah daftar baru, bukan string:
Secara umum, list menanggapi semua operasi urutan yang kami gunakan pada string di artikel sebelumnya, termasuk alat iterasi:
List comprehensions adalah cara untuk
membangun List baru dengan menerapkan ekspresi untuk setiap item secara
berurutan (benar-benar, dalam setiap iterable), dan kerabat dekat untuk untuk
loop:
Ungkapan ini secara fungsional setara dengan
pengulangan yang menyusun List hasil secara manual, tetapi seperti yang akan
kita pelajari di bab-bab selanjutnya, pemahaman List lebih sederhana untuk
dikodekan dan kemungkinan lebih cepat untuk dijalankan hari ini:
fungsi
mapbuilt-in melakukan pekerjaan serupa, tetapi menerapkan fungsi ke
item dalam urutan dan mengumpulkan semua hasil dalam daftar baru:
Indexing, Slicing, dan Matrixes
Karena List adalah urutan, pengindeksan dan
pengirisan bekerja dengan cara yang sama untuk List seperti yang mereka lakukan
untuk string. Namun, hasil pengindeksan List adalah apa pun jenis objek yang
hidup pada offset yang Anda tentukan, sementara mengiris List selalu
mengembalikan List baru:
Satu catatan di sini: karena Anda dapat
menyusun List dan jenis objek lain dalam List, Anda terkadang perlu merangkai
bersama operasi indeks untuk masuk lebih dalam ke struktur data.
Sebagai contoh, salah satu cara paling sederhana untuk merepresentasikan matriks (array multidimensional) dengan Python adalah sebagai List dengan sublist bersarang. Berikut ini adalah array berbasis 3X 3 dua dimensi dasar:
Sebagai contoh, salah satu cara paling sederhana untuk merepresentasikan matriks (array multidimensional) dengan Python adalah sebagai List dengan sublist bersarang. Berikut ini adalah array berbasis 3X 3 dua dimensi dasar:
Dengan satu indeks, Anda mendapatkan seluruh
baris (benar-benar, sublist bersarang), dan dengan dua, Anda mendapatkan item
utama dalam baris:
Mengubah Daftar di Tempat
Saat menggunakan List, Anda dapat mengubah
isinya dengan menetapkan baik item tertentu (offset) atau seluruh bagian
(slice):
Penetapan indeks dan potongan merupakan
perubahan di tempat — mereka memodifikasi List subjek secara langsung, daripada
menghasilkan objek List baru untuk hasilnya. Indeks penugasan di Python berfungsi
seperti halnya di C dan sebagian besar bahasa lainnya: Python menggantikan
referensi objek tunggal pada offset yang ditentukan dengan yang baru.
Tugas Slice, operasi terakhir dalam contoh
sebelumnya, menggantikan seluruh bagian List dalam satu langkah. Karena ini
bisa menjadi sedikit rumit, mungkin paling baik dianggap sebagai kombinasi dari
dua langkah:
1. Penghapusan. Potongan yang Anda tentukan di
sebelah kiri = dihapus.2. Penyisipan. Item baru yang terkandung dalam objek iterable di sebelah kanan = adalah
dimasukkan ke dalam List di sebelah kiri, di tempat di mana potongan lama dihapus
Ini bukan yang benar-benar terjadi, tetapi
dapat membantu menjelaskan mengapa jumlah item yang disisipkan tidak harus
sesuai dengan jumlah item yang dihapus. Misalnya, diberi List dua atau lebih
item, tugas L [1: 2] = [4,5] menggantikan satu item dengan dua — Python pertama
menghapus satu item pada [1: 2] (dari offset 1 , hingga tetapi tidak termasuk
offset 2), kemudian masukkan 4 dan 5di mana saja potongan yang dihapus
digunakan.
Ini juga
menjelaskan mengapa pemberian potongan kedua di bawah ini benar-benar sebuah
sisipan —Python mengganti sebuah irisan kosong pada [1: 1] dengan dua item; dan
mengapa yang ketiga benar-benar penghapusan — Python menghapus slice (item pada
offset 1), lalu memasukkan apa-apa:
Di sisi lain,
operasi ini dapat digunakan sebagai semacam rangkasan di tempat di bagian depan
List — sesuai cakupan metode bagian berikutnya, sesuatu yang diperpanjang oleh List
akan lebih mnemonik di akhir List:
Karena List bisa berubah, mereka mendukung
operasi yang mengubah objek List di tempat. Artinya, operasi di bagian ini
semua memodifikasi objek List secara langsung — menimpa nilai sebelumnya —
tanpa mengharuskan Anda membuat salinan baru, karena Anda harus melakukan
string. Karena Python hanya membahas referensi objek, perbedaan antara mengubah
objek di tempat dan membuat objek baru menjadi penting; jika Anda mengubah
objek di tempat, Anda mungkin berdampak lebih dari satu referensi untuk itu
pada saat yang sama.
List method calls
Seperti string,
objek List Python juga mendukung panggilan metode spesifik-jenis, banyak yang
mengubah List subjek di tempat:
Dalam
bentuk-bentuk, reverseargument memungkinkan macam-macam dibuat dalam descending
daripada urutan menaik, dan keyargument memberikan fungsi satu argumen yang
mengembalikan nilai yang akan digunakan dalam menyortir-konverter huruf kecil
standar objek string di berikut ini (meskipun casing barunya mungkin lebih
kecil. menangani beberapa jenis teks Unicode lebih baik):
Sebagian karena
keterbatasan tersebut, pengurutan juga tersedia dalam Pythons baru-baru ini
sebagai fungsi bawaan, yang mengurutkan setiap koleksi (bukan hanya List) dan
mengembalikan List baru untuk hasil (bukan perubahan di tempat):
Ada juga fungsi
built-in terbalik yang berfungsi seperti diurutkan dan mengembalikan objek
hasil baru, tetapi harus dibungkus dalam List di kedua 2.X dan 3.X di sini
karena hasilnya adalah iterator yang menghasilkan hasil sesuai permintaan
(lebih pada iterator nanti):
Dalam beberapa
jenis program, metode List pop sering digunakan bersama dengan menambahkan
untuk menerapkan struktur tumpukan cepat terakhir-in-first-out (LIFO). Akhir List
berfungsi sebagai bagian atas tumpukan:
Popmethod juga
menerima offset opsional dari item yang akan dihapus dan dikembalikan (default
adalah item terakhir di offset −1). Metode List lainnya menghapus item dengan
nilai (hapus), menyisipkan item pada offset (insert), menghitung jumlah
kejadian (menghitung), dan mencari item offset (indeks-pencarian indeks barang,
tidak bingung dengan pengindeksan!):
Perhatikan bahwa
tidak seperti metode List lainnya, countand indexdo tidak mengubah List itu
sendiri, tetapi mengembalikan informasi tentang isinya. Lihat sumber
dokumentasi lain atau bereksperimen dengan panggilan ini secara interaktif
untuk mempelajari lebih lanjut tentang metode List.
Karena List bisa
berubah, Anda dapat menggunakan penghapusan untuk menghapus item atau bagian di
tempat:
Menetapkan List
kosong ke indeks, di sisi lain, hanya menyimpan referensi ke objek List kosong
di slot yang ditentukan, daripada menghapus item:
Dalam artikel ini, kita menjelajahi List mungkin jenis koleksi yang paling umum, fleksibel, dan kuat yang
akan Anda lihat dan gunakan dalam kode Python. Kita
belajar bahwa jenis List mendukung koleksi urutan objek sewenang-wenang, dan
bahwa itu dapat dengan bebas bersarang dan tumbuh dan menyusut sesuai
permintaan. Kedua
List dapat berubah, dan mendukung berbagai operasi perubahan di
tempat yang tidak tersedia untuk string: misalnya, List dapat dikembangkan oleh
appendcalls, dengan penugasan ke kunci baru. Di artikel berikutnya, kita akan menyelesaikan inti jenis objek wisata kita dengan
melihat tuple dan file. Setelah
itu, kita akan beralih ke pernyataan yang mengodekan logika yang memproses
objek kita, membawa kita selangkah lagi menuju penulisan program lengkap.


















No comments:
Post a Comment