Rumah >pembangunan bahagian belakang >Tutorial Python >Program Python untuk mengekstrak N kunci kamus terbesar
Kamus Python ialah struktur data yang boleh digunakan untuk pelbagai operasi, menjadikannya alat pengaturcaraan yang prolifik. Ia menyimpan data dalam bentuk pasangan nilai kunci, iaitu setiap data boleh ditandakan dengan kunci unik. Kunci dalam kamus ialah pengecam yang dikaitkan dengan nilai berbeza yang boleh diakses, diubah suai dan dipadamkan.
Kunci boleh diisih dan diekstrak dalam susunan yang berbeza bergantung pada tugas. Dalam artikel ini, kita akan membincangkan konsep serupa untuk mengekstrak kunci kamus N maksimum . Kami akan mengendalikan kunci unik ini dan mengekstrak data yang berkaitan.
Pertimbangkan kamus dengan nilai kunci unik rawak, tugas kami adalah untuk memisahkan kunci N terbesar daripada kamus. Marilah kita memahami perkara ini melalui contoh -
Mari kita pertimbangkan kamus dengan nilai berikut -
Input: dict1 = {12 : 10, 22 : 12, 18 : 4, 4 : 8, 20 : 14, 9 : 13}
Jika nilai N ialah 4, kembalikan empat nilai kunci terbesar dalam kamus asal.
Output: [22, 20, 18, 12]
Kembalikan paling banyak nilai kunci N. Sekarang setelah kita memahami pernyataan masalah, mari kita bincangkan beberapa penyelesaian.
Ini adalah kaedah asas untuk mengekstrak kunci N terbesar daripada kamus. Kami akan mencipta kamus dan dua senarai kosong untuk menyimpan nilai maksimum dan nilai rujukan masing-masing. Selepas itu, kami akan lulus nilai “N” dan mengekstrak nilai kunci dengan bantuan lelaran dan kaedah “.items()”.
Nilai yang diekstrak ini akan disimpan dalam senarai (Maxlis). Kami akan mengulangi kekunci kamus yang dilampirkan "N" sekali lagi dan mengekstrak semua nilai maksimum. Pada setiap lelaran, nilai kunci terbesar dialih keluar daripada senarai dan senarai dengan kunci N terbesar (Terbesar) dicetak.
Berikut ialah contoh mengekstrak kunci kamus terbesar N menggunakan lelaran dan penambahan -
dict1 = {12 : 10, 22 : 12, 18 : 4, 4 : 8, 20 : 14, 9 : 13} Maxlis = [] N = 4 Nlargest = [] print(f"The original dictionary is: {dict1}") for keys, values in dict1.items(): Maxlis.append(keys) for x in range(N): maxval = max(Maxlis) Nlargest.append(maxval) Maxlis.remove(maxval) print(f"The list of N largest dictionaries keys: {Nlargest}")
The original dictionary is: {12: 10, 22: 12, 18: 4, 4: 8, 20: 14, 9: 13} The list of N largest dictionaries keys: [22, 20, 18, 12]
Ini ialah kaedah lanjutan untuk mengekstrak kunci N terbesar. Dalam kaedah ini kami akan mendapatkan semula semua kunci kamus menggunakan kaedah lelaran dan ".items()". Kami akan menggunakan "key" parameter dalam "sorted()" fungsi untuk menentukan fungsi lain (lambda) untuk mengendalikan logik pengekstrakan. Fungsi lambda mengekstrak kekunci dan fungsi sorted() menyusunnya mengikut tertib.
Klausa "reverse = True" mengisih nilai kunci dalam tertib menurun. Akhir sekali, kami menggunakan teknik menghiris untuk mengekstrak hanya kekunci N pertama daripada kamus dan menyimpannya dalam senarai (Terbesar).
Berikut adalah contoh -
dict1 = {12 : 10, 22 : 12, 18 : 4, 4 : 8, 20 : 14, 9 : 13} N = 4 Nlargest = [] print(f"The original dictionary is: {dict1}") for keys, values in sorted(dict1.items(), key = lambda item : item[0], reverse = True) [:N]: Nlargest.append(keys) print(f"The N largest keys are: {Nlargest}")
The original dictionary is: {12: 10, 22: 12, 18: 4, 4: 8, 20: 14, 9: 13} The N largest keys are: [22, 20, 18, 12]
Daripada menggunakan fungsi lambda untuk mengekstrak item, kita boleh menggunakan fungsi "itemgetter()" dalam modul operator. Kami akan menggunakan konsep lelaran dan kekunci pengisihan yang sama, tetapi parameter "key" akan diberikan fungsi "itemgetter()" untuk mengekstrak kunci.
Berikut adalah contoh -
from operator import itemgetter dict1 = {12 : 10, 22 : 12, 18 : 4, 4 : 8, 20 : 14, 9 : 13} N = 4 Nlargest = [] print(f"The original dictionary is: {dict1}") for keys, values in sorted(dict1.items(), key = itemgetter(0), reverse = True) [:N]: Nlargest.append(keys) print(f"The N largest keys are: {Nlargest}")
The original dictionary is: {12: 10, 22: 12, 18: 4, 4: 8, 20: 14, 9: 13} The N largest keys are: [22, 20, 18, 12]
Terdapat pelbagai teknik untuk mengekstrak kunci N terbesar daripada kamus, termasuk menggunakan fungsi "nlargest()" daripada modul "heapq" dan pengisihan berasaskan fungsi. Menetapkan nilai yang betul untuk fungsi "lambda" dan "itemgetter" adalah sangat penting kerana ia menetapkan peringkat untuk pengisihan dan pengekstrakan item.
Dalam artikel ini, kami membincangkan pelbagai penyelesaian untuk mengekstrak N nilai kamus maksimum. Kami bermula dengan pendekatan asas dan kasar untuk mengasingkan dan melampirkan kunci terbesar. Selepas itu, kami membincangkan beberapa penyelesaian lanjutan untuk menjana program terperinci dan dioptimumkan. Kami mempelajari tentang aplikasi fungsi sorted(), lambda, itemgetter dan max().
Atas ialah kandungan terperinci Program Python untuk mengekstrak N kunci kamus terbesar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!