Tuesday, August 7, 2018

List dalam Python

Halo Sobat Python apa kabarnya ?
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:


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