Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menyongsangkan Kamus dengan Nilai Senarai?

Bagaimana untuk Menyongsangkan Kamus dengan Nilai Senarai?

Mary-Kate Olsen
Lepaskan: 2024-10-29 18:39:56
asal
1032 orang telah melayarinya

How to Invert a Dictionary with List Values?

Menterbalikkan Kamus dengan Nilai Senarai

Matlamat anda adalah untuk menyongsangkan kamus (indeks) dengan nilai senarai supaya kamus yang terhasil (terbalik) mempunyai nilai pendua digabungkan menjadi satu kunci dengan kunci asal sebagai nilai.

Fungsi yang disediakan, invert_dict, gagal apabila menemui nilai senarai disebabkan oleh sifat senarai yang tidak boleh dicincang. Untuk menyelesaikan masalah ini, pertimbangkan penyelesaian berikut:

<code class="python">inverse = {}
for k, v in index.items():
    for x in v:
        inverse.setdefault(x, []).append(k)</code>
Salin selepas log masuk

Penyelesaian ini berulang melalui kamus asal (indeks), mengakses setiap kunci (k) dan nilai (v). Untuk setiap nilai dalam v (iaitu senarai), ia menambah kunci yang berkaitan pada senarai dalam kamus songsang menggunakan kaedah setdefault. Kaedah ini mencipta entri baharu untuk setiap nilai unik dalam v dan menambahkan kunci pada senarai yang berkaitan.

Akibatnya, kamus songsang akan mengandungi struktur songsang yang diingini, dengan setiap nilai merupakan senarai kunci asal di mana nilai itu muncul.

Atas ialah kandungan terperinci Bagaimana untuk Menyongsangkan Kamus dengan Nilai Senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan