Koleksi Dengan Python: Semua yang Perlu Anda Ketahui Tentang Koleksi Python



Blog ini akan membahas tipe data koleksi built-in dalam python bersama dengan modul koleksi dengan semua struktur data koleksi khusus.

Bahasa pemrograman Python memiliki empat tipe data kumpulan- daftar , tupel, set dan . Tapi juga dilengkapi dengan modul built-in yang dikenal sebagai koleksi yang memiliki struktur data khusus yang pada dasarnya menutupi kekurangan dari empat tipe data. Di blog ini, kita akan membahas masing-masing struktur data khusus tersebut secara mendetail. Berikut adalah subjek yang diselimuti dalam blog ini:

Apa Koleksi Dengan Python?

Koleksi dalam python pada dasarnya adalah tipe data container, yaitu list, set, tuple, dictionary. Mereka memiliki karakteristik yang berbeda berdasarkan deklarasi dan penggunaannya.





  • Sebuah daftar dideklarasikan dalam tanda kurung siku, dapat berubah, menyimpan nilai duplikat dan elemen dapat diakses menggunakan indeks.

  • Sebuah tupel terurut dan sifatnya tidak berubah, meskipun entri duplikat bisa ada di dalam tupel.



  • Satu set tidak berurutan dan dinyatakan dalam tanda kurung siku. Itu tidak diindeks dan tidak memiliki entri duplikat juga.

  • Kamus memiliki pasangan nilai kunci dan sifatnya bisa berubah. Kami menggunakan tanda kurung siku untuk mendeklarasikan kamus.

Ini adalah tipe data container built-in untuk tujuan umum python. Tapi seperti yang kita semua tahu, python selalu memiliki sedikit kelebihan untuk ditawarkan. Muncul dengan modul python bernama koleksi yang memiliki struktur data khusus.



Struktur Data Koleksi Khusus

Koleksi modul dengan python mengimplementasikan struktur data khusus yang memberikan alternatif untuk tipe data container built-in python. Berikut adalah struktur data khusus dalam modul koleksi.

bagaimana menemukan nomor terbesar dalam array java
  1. nametuple ()
  2. dan
  3. Chainmap
  4. Melawan
  5. OrderedDict
  6. defaultdict
  7. UserDict
  8. Daftar pengguna
  9. UserString

nametuple ()

Ini mengembalikan tupel dengan entri bernama, yang berarti akan ada nama yang ditetapkan ke setiap nilai di tupel. Ini mengatasi masalah mengakses elemen menggunakan nilai indeks. Dengan bernamatuple () menjadi lebih mudah untuk mengakses nilai-nilai ini, karena Anda tidak perlu mengingat nilai indeks untuk mendapatkan elemen tertentu.

Bagaimana itu bekerja?

Pertama-tama, Anda harus mengimpor modul koleksi, tidak memerlukan instalasi.

dari koleksi impor namapuple

Lihat kode berikut untuk memahami bagaimana Anda dapat menggunakan namaiuple.

a = namedtuple ('course', 'name, tech') s = a ('data science', 'python') print (s) # outputnya berupa mata kuliah (name = 'python', tech = 'python')

Bagaimana cara membuat sebuah putri bernama menggunakan daftar?

s._make (['data science', 'python']) #keluarannya akan sama seperti sebelumnya.

dan

deque diucapkan sebagai 'deck' adalah daftar yang dioptimalkan untuk melakukan penyisipan dan penghapusan dengan mudah.

Bagaimana itu bekerja?

#membuat deque dari koleksi import deque a = ['d', 'u', 'r', 'e', ​​'k'] a1 = deque (a) print (a1) #keluaran akan menjadi deque ([' d ',' u ',' r ',' e ',' k '])

Sekarang mari kita lihat bagaimana kita akan memasukkan dan menghapus item dari deque.

a1.append ('a') print (a1) # outputnya adalah deque (['d', 'u', 'r', 'e', ​​'k', 'a']) a1.appendleft (' e ') print (a1) # outputnya adalah deque ([' e ',' d ',' u ',' r ',' e ',' k ',' a '])

Seperti yang sudah jelas, memasukkan komponen ditingkatkan menggunakan deque, Anda juga dapat menghapus komponen juga.

a1.pop () print (a1) # output akan menjadi deque (['e', 'd', 'u', 'r', 'e', ​​'k']) a1.popleft () print (a1 ) # output akan menjadi deque (['d', 'u', 'r', 'e', ​​'k'])

Mirip dengan tipe data built-in, ada beberapa operasi lain yang bisa kita lakukan secara deque. Seperti menghitung elemen atau membersihkan deque, dll.

ChainMap

Ini adalah kamus seperti kelas yang mampu membuat tampilan tunggal dari beberapa pemetaan. Ini pada dasarnya mengembalikan daftar beberapa kamus lain. Misalkan Anda memiliki dua kamus dengan beberapa pasangan nilai kunci, dalam hal ini ChainMap akan membuat satu daftar dengan kedua kamus di dalamnya.

Bagaimana itu bekerja?

dari koleksi import ChainMap a = {1: 'edureka', 2: 'python'} b = {3: 'data science', 4: 'Machine learning'} c = ChainMap (a, b) print (c) #the keluarannya adalah ChainMap [{1: 'edureka', 2: 'python'}, {3: 'data science', 4: 'Machine learning'}]

Untuk mengakses atau menyisipkan elemen kami menggunakan kunci sebagai indeks. Tetapi untuk menambahkan kamus baru di ChainMap kami menggunakan pendekatan berikut.

a1 = {5: 'AI', 6: 'neural networks'} c1 = c.new_child (a1) print (c1) # outputnya adalah ChainMap [{1: 'edureka', 2: 'python'}, { 3: 'data science', 4: 'Machine learning'}, {5: 'AI', 6: 'neural networks'}]

Melawan

Ini adalah subkelas kamus yang digunakan untuk menghitung objek hashable.

Bagaimana itu bekerja?

apa perbedaan antara c ++ dan java
dari koleksi import Counter a = [1,1,1,1,2,3,3,4,3,3,4] c = Counter (a) print (c) # outputnya adalah Counter = ({1: 4, 2: 1, 3: 4, 4: 2})

Selain operasi yang dapat Anda lakukan pada kamus, Penghitung memiliki 3 operasi lagi yang dapat kami lakukan.

  1. fungsi elemen - Ini mengembalikan daftar yang berisi semua elemen di Penghitung.
  2. Most_common () - Ini mengembalikan daftar yang diurutkan dengan jumlah setiap elemen di Penghitung.
  3. Subtract () - Dibutuhkan objek iterable sebagai argumen dan mengurangi jumlah elemen di Counter.

OrderedDict

Ini adalah subkelas kamus yang mengingat urutan entri ditambahkan. Pada dasarnya, meskipun Anda mengubah nilai kunci, posisinya tidak akan berubah karena urutan penyisipannya ke dalam kamus.

Bagaimana itu bekerja?

dari koleksi import OrderedDict od = OrderedDict () od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' from [7] = 'a' print (from) # output akan menjadi OrderedDict [(1, 'e'), (2, 'd'), (3, 'u'), (4, 'r'), (5, 'e'), (6, 'k'), (7, 'a')]

Tidak masalah nilai apa yang dimasukkan ke dalam kamus, OrderedDict mengingat urutan penyisipannya dan mendapatkan keluaran yang sesuai. Bahkan jika kita mengubah nilai kuncinya. Katakanlah, jika kita mengubah nilai kunci 4 menjadi 8, urutannya tidak akan berubah dalam output.

defaultdict

Ini adalah subkelas kamus yang memanggil fungsi pabrik untuk memberikan nilai yang hilang. Secara umum, ini tidak memunculkan kesalahan apa pun ketika nilai kunci yang hilang dipanggil dalam kamus.

Bagaimana itu bekerja?

dari koleksi import defaultdict d = defaultdict (int) #kita harus menentukan tipe juga. d [1] = 'edureka' d [2] = 'python' print (d [3]) # itu akan memberikan keluaran sebagai 0 bukan keyerror.

UserDict

Kelas ini bertindak sebagai pembungkus di sekitar objek kamus. Kebutuhan akan kelas ini berasal dari kebutuhan untuk subclass langsung dari dict. Menjadi lebih mudah untuk bekerja dengan kelas ini karena kamus yang mendasari menjadi atribut.

koleksi kelas.UserDict ([initialdata])

Kelas ini mensimulasikan kamus. Konten dari instance disimpan dalam kamus biasa yang dapat diakses dengan atribut 'data' dari kelas UserDict. Referensi data awal tidak disimpan, untuk digunakan untuk keperluan lain.

Daftar pengguna

Kelas ini bertindak seperti pembungkus di sekitar objek daftar. Ini adalah kelas dasar yang berguna untuk daftar lain seperti kelas yang dapat mewarisi darinya dan mengganti metode yang sudah ada atau bahkan menambahkan lebih sedikit yang baru juga.

Kebutuhan akan kelas ini berawal dari kebutuhan untuk subclass langsung dari daftar. Menjadi lebih mudah untuk bekerja dengan kelas ini karena daftar yang mendasari menjadi atribut.

koleksi kelas.UserList ([list])

Ini adalah kelas yang mensimulasikan daftar. Konten dari instance disimpan dalam daftar biasa. Sub-kelas dari daftar tersebut diandalkan untuk menawarkan konstruktor yang dapat dipanggil dengan tidak ada atau satu perselisihan.

Di blog ini, kita telah belajar tentang struktur data khusus yang disertakan dengan modul koleksi di python. Pengoptimalan mengarah pada kinerja yang lebih baik dan hasil yang ditingkatkan. Hal yang sama juga berlaku untuk karir dan keterampilan kita sendiri. Jika Anda ingin memulai pembelajaran Anda dan mengoptimalkan cara Anda memahami pemrograman, mendaftarlah ke edureka’s dan lepaskan kemungkinan tak terbatas dengan python.

Punya pertanyaan? sebutkan di komentar, dan kami akan menghubungi Anda kembali secepatnya.