Rumah >pembangunan bahagian belakang >Tutorial Python >Program Python untuk mengekstrak N kunci kamus terbesar

Program Python untuk mengekstrak N kunci kamus terbesar

王林
王林ke hadapan
2023-09-08 22:29:021125semak imbas

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.

Pemahaman Soalan

Pertimbangkan kamus dengan nilai kunci unik rawak, tugas kami adalah untuk memisahkan kunci N terbesar daripada kamus. Marilah kita memahami perkara ini melalui contoh -

Senario input dan output

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.

Gunakan lelaran dan Max()

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.

Contoh

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}")

Output

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]

Menggunakan lelaran dengan Sorted() + Lambda

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).

Contoh

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}")

Output

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]

Gunakan Sorted() + Itemgetter()

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.

Contoh

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}")

Output

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]

Penyelesaian dan Wawasan Lain

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.

KESIMPULAN

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam