Hampir semua jenis nilai dapat digunakan sebagai kunci kamus di Python. Anda bahkan dapat menggunakan objek bawaan seperti tipe dan fungsi. Namun, ada beberapa batasan yang harus dipatuhi oleh kunci kamus
Pertama, kunci yang diberikan hanya dapat muncul sekali dalam kamus. Kunci duplikat tidak diperbolehkan. Kamus memetakan setiap kunci ke nilai yang sesuai, jadi tidak masuk akal untuk memetakan kunci tertentu lebih dari satu kali. Jika Anda menentukan kunci untuk kedua kalinya selama pembuatan kamus awal, kemunculan kedua akan menggantikan yang pertama
Kedua, kunci kamus harus dari jenis yang tidak dapat diubah. Misalnya, Anda dapat menggunakan integer, float, string, atau Boolean sebagai kunci kamus. Namun, baik daftar maupun kamus lain tidak dapat berfungsi sebagai kunci kamus, karena daftar dan kamus dapat diubah. Sebaliknya, nilai dapat berupa jenis apa saja dan dapat digunakan lebih dari satu kali
Joshua Dougas di
Saya terkejut bahwa pesan kesalahan untuk kunci daftar tidak menyebutkan perubahan sama sekali
Saya bermain-main dan menemukan bahwa objek yang dapat berubah benar-benar berfungsi sebagai kunci, selama objek tersebut dapat di-hash. Kita dapat membuat daftar turunan yang hashable dengan mengimplementasikan metode hash() menggunakan beberapa skema arbitrer
Saya melakukan ini di bawah dan menemukan bahwa objek yang dapat berubah sebenarnya berfungsi sebagai kunci kamus, hanya saja menggunakan kunci yang dapat berubah dapat menyebabkan hasil yang tidak terduga
Misalnya jika Anda menambahkan item menggunakan kunci yang dapat diubah dan kemudian mengubah kunci secara permanen, maka Anda berisiko 'kehilangan' nilai terkait. Saya yakin ada banyak peringatan lain, seperti tabrakan, juga
Untuk mendapatkan daftar nilai kamus dari daftar kunci, gunakan pernyataan pemahaman daftar d = {'alice': 18, 'bob': 24, 'carl': 32} keys = ['carl', 'bob'] result = [d[key] for key in keys] print(result) # [32, 24]0 yang mengulangi setiap kunci dalam daftar kunci dan menempatkan nilai terkait d[key] ke dalam daftar yang baru dibuat
d = {'alice': 18, 'bob': 24, 'carl': 32} keys = ['carl', 'bob'] result = [d[key] for key in keys] print(result) # [32, 24]Ini mengakses setiap nilai secara terpisah dalam cuplikan kode satu baris yang ringkas. Jika Anda memerlukan penyegaran tentang pemahaman daftar, lihat video ini
Pengantar Sederhana untuk Pemahaman Daftar dengan Python
Tonton video ini di YouTube
Anda juga dapat membaca panduan lengkap tentang pemahaman daftar
Namun, Anda harus tahu bahwa jika kunci tidak dapat ditemukan, Python akan memunculkan KeyError
d = {'alice': 18, 'bob': 24, 'carl': 32} keys = ['carl', 'bob', 'guido'] result = [d[key] for key in keys] print(result)Output dari potongan kode ini adalah d = {'alice': 18, 'bob': 24, 'carl': 32} keys = ['carl', 'bob'] result = [d[key] for key in keys] print(result) # [32, 24]2
... result = [d[key] for key in keys] KeyError: 'guido'_Untuk memperbaikinya tanpa menggunakan pernyataan coba/kecuali yang kikuk, cukup akhiri pernyataan pemahaman daftar dengan mekanisme pemeriksaan sebagai klausa d = {'alice': 18, 'bob': 24, 'carl': 32} keys = ['carl', 'bob'] result = [d[key] for key in keys] print(result) # [32, 24]3
d = {'alice': 18, 'bob': 24, 'carl': 32} keys = ['carl', 'bob', 'guido'] result = [d[key] for key in keys if key in d] print(result) # [32, 24] _Metode 2. Untuk Loop
Untuk mendapatkan daftar nilai dari daftar kunci, Anda juga dapat mengulangi semua kunci dalam loop for sederhana. Tubuh loop hanya terdiri dari pernyataan d = {'alice': 18, 'bob': 24, 'carl': 32} keys = ['carl', 'bob'] result = [d[key] for key in keys] print(result) # [32, 24]_4 yang mengisi daftar yang awalnya kosong dengan nilai kamus terkait yang diperoleh melalui d[key]
d = {'alice': 18, 'bob': 24, 'carl': 32} keys = ['carl', 'bob'] result = [] for key in keys: result.append(d[key]) print(result) # [32, 24] _Ini adalah bentuk paling umum yang digunakan oleh pemula yang belum terbiasa dengan pemahaman daftar. Namun, meskipun ini bukan solusi yang paling ringkas, saya masih menganggapnya sebagai Pythonic karena keterbacaan dan kesederhanaannya
Anda dapat mempelajari lebih lanjut tentang pernyataan d = {'alice': 18, 'bob': 24, 'carl': 32} keys = ['carl', 'bob'] result = [d[key] for key in keys] print(result) # [32, 24]_4 di video berikut
Daftar Python append() Metode
Tonton video ini di YouTube
Metode 3. Fungsi Peta
Cara paling ringkas namun paling tidak mudah dibaca untuk mendapatkan daftar nilai dari daftar kunci kamus adalah dengan menggunakan ekspresi d = {'alice': 18, 'bob': 24, 'carl': 32} keys = ['carl', 'bob'] result = [d[key] for key in keys] print(result) # [32, 24]7 yang pertama-tama menerapkan fungsi d = {'alice': 18, 'bob': 24, 'carl': 32} keys = ['carl', 'bob'] result = [d[key] for key in keys] print(result) # [32, 24]8 untuk setiap kunci untuk mendapatkan iterable dari nilai terkait—dan mengonversi semuanya menjadi daftar menggunakan
d = {'alice': 18, 'bob': 24, 'carl': 32} keys = ['carl', 'bob'] result = list(map(d.get, keys)) print(result) # [32, 24]Untuk mempelajari lebih lanjut tentang fungsi d = {'alice': 18, 'bob': 24, 'carl': 32} keys = ['carl', 'bob', 'guido'] result = [d[key] for key in keys] print(result)_0, jangan ragu untuk menonton video berikut
Menguasai Fungsi Peta Python [+Video]
Tonton video ini di YouTube
Atau baca panduan lengkap tentang fungsi d = {'alice': 18, 'bob': 24, 'carl': 32} keys = ['carl', 'bob', 'guido'] result = [d[key] for key in keys] print(result)_0. Ini akan menghabiskan waktu dengan baik. 🙂
Kemana Pergi Dari Sini?
Cukup teori. Mari kita berlatih
Pembuat kode dibayar enam digit atau lebih karena mereka dapat memecahkan masalah dengan lebih efektif menggunakan kecerdasan mesin dan otomasi
Untuk menjadi lebih sukses dalam pengkodean, selesaikan lebih banyak masalah nyata untuk orang-orang nyata. Begitulah cara Anda memoles keterampilan yang benar-benar Anda butuhkan dalam latihan. Lagi pula, apa gunanya teori belajar yang tidak dibutuhkan siapa pun?
Anda membangun keterampilan pengkodean bernilai tinggi dengan mengerjakan proyek pengkodean praktis
Apakah Anda ingin berhenti belajar dengan proyek mainan dan fokus pada proyek kode praktis yang memberi Anda uang dan memecahkan masalah nyata bagi orang-orang?
🚀 Jika jawaban Anda adalah YA. , pertimbangkan untuk menjadi pengembang lepas Python. Ini adalah cara terbaik untuk mendekati tugas meningkatkan keterampilan Python Anda—bahkan jika Anda benar-benar pemula
Jika Anda hanya ingin belajar tentang peluang freelancing, jangan ragu untuk menonton webinar gratis saya “Bagaimana Membangun Keterampilan Berpenghasilan Tinggi Anda Python” dan pelajari bagaimana saya mengembangkan bisnis coding saya secara online dan bagaimana Anda juga bisa—dari kenyamanan Anda
Bergabunglah dengan webinar gratis sekarang
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