Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menyongskan Kamus Python dengan Nilai Senarai?

Bagaimanakah Saya Boleh Menyongskan Kamus Python dengan Nilai Senarai?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-31 05:55:01513semak imbas

How Can I Invert a Python Dictionary with List Values?

Menyongsangkan Kamus dengan Nilai Senarai: Penyelesaian Komprehensif

Dalam domain pengaturcaraan Python, kamus ialah struktur yang sangat diperlukan untuk menyimpan data dengan pasangan nilai kunci. Kadangkala, keperluan timbul untuk menyongsangkan kamus, terutamanya apabila nilainya adalah senarai. Tugasan ini memberikan cabaran kerana sifat senarai yang tidak boleh dicincang. Walau bagaimanapun, wujud penyelesaian yang mudah untuk mengatasi halangan ini.

Untuk mencapai penyongsangan kamus dengan nilai senarai, seseorang boleh menggunakan coretan berikut:

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

Dalam pendekatan ini, gelung luar berulang melalui kunci dan nilai kamus asal. Untuk setiap nilai (iaitu senarai), gelung dalaman berulang melalui setiap elemen senarai itu. Untuk setiap elemen yang ditemui, kelakuan kamus songsang ditentukan oleh logik berikut:

  • Jika unsur (x) sudah wujud sebagai kunci dalam kamus songsang, kunci daripada kamus asal (k) dilampirkan pada senarai nilai yang sepadan.
  • Jika elemen belum wujud sebagai kunci, kunci baharu dibuat dengan senarai kosong sebagai nilai dan kunci daripada kamus asal dilampirkan pada baharu ini senarai.

Proses ini menyongsangkan kamus asal dengan berkesan, dengan nilai (kunci asal) menjadi kunci dan kunci (nilai asal) diubah menjadi senarai kunci yang asalnya. Kamus songsang yang terhasil mengandungi format yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyongskan Kamus Python dengan Nilai Senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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