Anda dapat menggunakan daftar Python sebagai nilai kamus. Faktanya, Anda bisa menggunakan objek Python sewenang-wenang sebagai nilai kamus dan semua objek hashable sebagai kunci kamus. Anda dapat menentukan daftar [1, 2]_ sebagai nilai dict baik dengan dict[key] = [1, 2] atau dengan d = {key: [1, 2]}
Berikut adalah contoh konkret yang menunjukkan cara membuat kamus friends di mana setiap nilai kamus sebenarnya adalah daftar teman
friends = {'Alice': ['Bob', 'Carl'], 'Bob': ['Alice'], 'Carl': []} print('Alice friends: ', friends['Alice']) # Alice friends: ['Bob', 'Carl'] print('Bob friends: ', friends['Bob']) # Bob friends: ['Alice'] print('Carl friends: ', friends['Carl']) # Carl friends: []Perhatikan bahwa Anda juga dapat menetapkan daftar sebagai nilai kunci tertentu dengan menggunakan operasi penetapan kamus seperti itu
friends = dict() friends['Alice'] = ['Bob', 'Carl'] friends['Bob'] = ['Alice'] friends['Carl'] = [] print('Alice friends: ', friends['Alice']) # Alice friends: ['Bob', 'Carl'] print('Bob friends: ', friends['Bob']) # Bob friends: ['Alice'] print('Carl friends: ', friends['Carl']) # Carl friends: [] _Bisakah Saya Menggunakan Daftar sebagai Tombol Dict?
Anda tidak dapat menggunakan daftar sebagai kunci kamus karena daftar dapat diubah dan karenanya tidak dapat di-hash. Karena kamus dibangun di atas tabel hash, semua kunci harus dapat di-hash atau Python memunculkan pesan kesalahan
Ini sebuah contoh
d = dict() my_list = [1, 2, 3] d[my_list] = 'abc'Ini mengarah ke pesan kesalahan berikut
Traceback (most recent call last): File "C:\Users\xcent\Desktop\code.py", line 3, in <module> d[my_list] = 'abc' TypeError: unhashable type: 'list'Untuk memperbaikinya, ubah daftar menjadi tupel Python dan gunakan tupel Python sebagai kunci kamus. Tuple Python tidak dapat diubah dan hashable dan, oleh karena itu, dapat digunakan sebagai elemen set atau kunci kamus
Berikut adalah contoh yang sama setelah mengonversi daftar menjadi tuple—ini berfungsi. 🎉
d = dict() my_list = [1, 2, 3] my_tuple = tuple(my_list) d[my_tuple] = 'abc' _Sebelum Anda pergi, mungkin Anda ingin bergabung dengan akademi email gratis kami untuk pembelajar ambisius seperti Anda? . Kami juga memiliki lembar contekan. 👇
Chris
Saat bekerja sebagai peneliti dalam sistem terdistribusi, Dr. Christian Mayer menemukan cintanya untuk mengajar siswa ilmu komputer
Untuk membantu siswa mencapai tingkat kesuksesan Python yang lebih tinggi, dia mendirikan situs web pendidikan pemrograman Finxter. com. Dia adalah penulis buku pemrograman populer Python One-Liners (NoStarch 2020), rekan penulis seri Coffee Break Python dari buku yang diterbitkan sendiri, penggemar ilmu komputer, pekerja lepas, dan pemilik salah satu dari 10 blog Python terbesar di dunia
Kesukaannya adalah menulis, membaca, dan coding. Tetapi hasrat terbesarnya adalah untuk melayani calon pembuat kode melalui Finxter dan membantu mereka meningkatkan keterampilan mereka. Anda dapat bergabung dengan akademi email gratisnya di sini
Sebelum kita masuk ke diskusi kita tentang daftar dan kamus dengan Python, kita akan mendefinisikan kedua struktur data. Sementara kita melakukannya, mungkin berguna untuk menganggapnya sebagai daftar tugas harian dan kamus sekolah biasa.
Daftar adalah urutan item yang dapat diubah dan diurutkan. Dengan demikian, dapat diindeks, diiris, dan diubah. Setiap elemen dapat diakses menggunakan posisinya dalam daftar. Hal yang sama berlaku untuk agenda Anda, di mana Anda dapat mengubah urutan di mana Anda melakukan sesuatu dan bahkan menjadwal ulang sejumlah tugas untuk hari berikutnya jika diperlukan
- Kamus adalah kumpulan pasangan kunci-nilai yang dapat diubah dan tidak diurutkan di mana setiap kunci harus unik. Untuk mengakses elemen tertentu, kita harus merujuknya dengan menggunakan kuncinya, seperti Anda mencari kata di kamus sekolah
Dengan mengingat konsep ini, mari tinjau beberapa properti dan metode daftar dan kamus yang tersedia di Python. Meskipun kami tidak bermaksud untuk membahas semuanya, bagian berikut akan memberi kami gambaran sekilas tentang apa yang dapat kami capai dengan menggunakan struktur data ini dalam rangkaian ini
Kamus
Dalam Python, kamus ditulis menggunakan kurung kurawal. Setiap pasangan kunci-nilai (juga dikenal sebagai elemen) dipisahkan dari yang berikutnya dengan koma. Sebagai ilustrasi, mari kita perhatikan kamus berikut
1 player = { 'firstName': 'Jabari', 'lastName': 'Parker', 'jersey': '2', 'heightMeters': '2.03', 'nbaDebutYear': '2014' }
python
di mana kuncinya adalah firstName, lastName, jersey, heightMeters, dan nbaDebutYear. Untuk mengakses nilai yang terkait dengan salah satunya, kami akan menggunakan sintaks berikut
1 player['firstName'] 2 player['lastName'] 3 player['jersey'] 4 player['heightMeters'] 5 player['nbaDebutYear']_
python
Ara. 1 menunjukkan output dari pernyataan di atas
Namun, jika kami mencoba mengakses elemen melalui kunci yang tidak ada, kami akan menemukan pesan KeyError. Untuk mengatasi skenario tersebut, kita dapat menggunakan metode ________6______6 . Dibutuhkan kunci sebagai argumen pertama dan memungkinkan kita untuk menentukan nilai fallback jika kunci tersebut tidak ada, seperti yang ditunjukkan pada Gambar. 2.
1 player['weightKilograms'] 2 player.get('weightKilograms', '0.0')_
python
Tentu saja, kita bisa menambahkan kunci itu dan nilainya yang sesuai sebagai elemen baru ke kamus. Untuk melakukannya, kita akan menggunakan metode ________6______7 sebagai berikut.
1 player.update({'weightKilograms': '111.1'})
python
Selain itu, dimungkinkan untuk memperbarui nilai kunci yang diberikan menggunakan operator penugasan
1 player['jersey'] = '12'
python
Mari kita lihat pada Gambar. 3 seperti apa kamus kita sekarang
1 print(player)
python
Kamus mengizinkan semua jenis tipe data sebagai nilai, seperti yang akan kita pelajari menjelang akhir panduan ini, termasuk daftar dan kamus lainnya
Daftar
Dalam Python, daftar ditulis dengan tanda kurung siku. Meskipun dapat terdiri dari tipe data yang berbeda, daftar biasanya hanya menyertakan item dari jenis yang sama. Dengan kata lain,
1 myList = [1, 'hello', 2.35, True]
python
secara sintaksis valid tetapi tidak terlalu berguna, seperti yang dapat Anda bayangkan. Di samping itu,
1 prices = [1.35, 2.99, 10.5, 0.66]
python
jauh lebih masuk akal. Untuk mengakses salah satu elemen daftar, kita dapat menggunakan indeksnya
1 prices[0] 2 prices[1] 3 prices[2] 4 prices[3]
python
Daftar Python tidak diindeks nol. Jadi, elemen pertama berada di posisi 0, elemen kedua berada di posisi 1, elemen ketiga berada di posisi 2, dan seterusnya. Juga, item terakhir dianggap berada di posisi -1
Operasi yang paling umum adalah menambahkan elemen baru ke akhir daftar dengan metode 1 player['firstName'] 2 player['lastName'] 3 player['jersey'] 4 player['heightMeters'] 5 player['nbaDebutYear']8 .
1 prices.append(3.49)
python
Demikian juga, dimungkinkan juga untuk memasukkan item pada posisi tertentu (lihat Gambar. 4)
1 player['firstName'] 2 player['lastName'] 3 player['jersey'] 4 player['heightMeters'] 5 player['nbaDebutYear']_0
python
Metode bawaan lainnya, 1 player['firstName'] 2 player['lastName'] 3 player['jersey'] 4 player['heightMeters'] 5 player['nbaDebutYear']9 , memungkinkan kita untuk mengurutkan item dalam daftar baik secara numerik, abjad, atau dengan meneruskan kebiasaan . 5. Sebagai ilustrasi, mari gunakan harga dan daftar baru yang disebut produk. 1 player['weightKilograms'] 2 player.get('weightKilograms', '0.0')0 parameter, as can be seen in Fig. 5. To illustrate, let's use prices and a new list called products:
1 player['firstName'] 2 player['lastName'] 3 player['jersey'] 4 player['heightMeters'] 5 player['nbaDebutYear']_1
python
Secara default, 1 player['firstName'] 2 player['lastName'] 3 player['jersey'] 4 player['heightMeters'] 5 player['nbaDebutYear']9 beroperasi dalam urutan menaik.
Daftar juga dapat diiris, artinya kita dapat mengambil bagian (termasuk batas bawah tetapi bukan batas atas) seperti yang ditunjukkan pada Gambar. 6
Dari elemen pertama hingga posisi tertentu. 1 player['weightKilograms'] 2 player.get('weightKilograms', '0.0')2
Dari posisi tertentu hingga elemen terakhir. ________8______3
- Antara dua posisi yang diberikan dalam daftar. 1 player['weightKilograms'] 2 player.get('weightKilograms', '0.0')4
Menyatukan Semuanya
Kekuatan sebenarnya dari daftar Python dapat diapresiasi dengan lebih baik ketika kita menggunakannya untuk menyimpan struktur data yang lebih kompleks daripada bilangan bulat, pelampung, atau string. Daftar kamus adalah contoh yang bagus
Mari buat beberapa kamus lagi dengan informasi tentang pemain bola basket lainnya
1 player['firstName'] 2 player['lastName'] 3 player['jersey'] 4 player['heightMeters'] 5 player['nbaDebutYear']_2
python
Sekarang kita dapat menambahkan kamus ini, bersama dengan kamus yang kita gunakan pada contoh pertama panduan ini, ke daftar bernama nba_players (yang awalnya kosong)
1 player['firstName'] 2 player['lastName'] 3 player['jersey'] 4 player['heightMeters'] 5 player['nbaDebutYear']_3
python
Sekarang mari kita periksa nba_players
1 player['firstName'] 2 player['lastName'] 3 player['jersey'] 4 player['heightMeters'] 5 player['nbaDebutYear']_4
python
Seluruh daftar mungkin tidak mudah dibaca, jadi metode yang kami jelaskan sebelumnya juga berlaku dalam kasus ini. Berikut beberapa contohnya
Jumlah pemain di nba_players. 1 player['weightKilograms'] 2 player.get('weightKilograms', '0.0')5
Pemain pertama dalam daftar. 1 player['weightKilograms'] 2 player.get('weightKilograms', '0.0')6
Dua yang terakhir. 1 player['weightKilograms'] 2 player.get('weightKilograms', '0.0')7
- Karena setiap elemen dalam daftar adalah kamus, kami dapat mengakses tahun debut NBA setiap pemain dan menggunakannya untuk mengurutkan daftar (lihat Gambar. 7)
1 player['firstName'] 2 player['lastName'] 3 player['jersey'] 4 player['heightMeters'] 5 player['nbaDebutYear']_5
python
Ringkasan
Jadi di mana daftar dan kamus digunakan di dunia nyata? . JSON adalah format teks populer untuk pertukaran data dan digunakan sebagai standar de facto di sebagian besar API (Application Programming Interfaces) di semua jenis lingkungan dan untuk berbagai tujuan. API NBA terbuka, tempat kami mengambil informasi yang digunakan dalam panduan ini, adalah salah satu contohnya