Rumah > pembangunan bahagian belakang > Tutorial Python > Python - Tapis elemen ganjil daripada senarai nilai kamus

Python - Tapis elemen ganjil daripada senarai nilai kamus

PHPz
Lepaskan: 2023-09-01 10:57:03
ke hadapan
1476 orang telah melayarinya

Python - 从字典的值列表中筛选奇数元素

Kamus ialah jenis data popular dalam Python yang mempunyai pasangan nilai kunci dan tidak membenarkan pendua. Untuk menapis elemen ganjil ia mempunyai beberapa fungsi terbina seperti item(), penapis(), lambda dan list() akan digunakan untuk menapis unsur ganjil daripada senarai nilai dalam kamus. Unsur ganjil dalam senarai ialah unsur yang tidak boleh dibahagikan dengan 2.

Sebagai contoh -

Senarai yang diberikan, [10, 22, 21, 19, 2, 5]

Selepas menapis elemen ganjil daripada senarai:

Keputusan akhir menjadi [10, 22, 2] (ini adalah unsur yang boleh dibahagi dengan integer 2).

tatabahasa

Sintaks berikut digunakan dalam contoh -

items()
Salin selepas log masuk

Ini ialah kaedah terbina dalam yang boleh digunakan untuk mengembalikan objek paparan. Objek terdiri daripada kunci dengan pasangan nilai.

filter()
Salin selepas log masuk
Elemen

Python's filter() digunakan untuk menapis elemen berdasarkan keadaan tertentu.

lambda
Salin selepas log masuk

Fungsi lambda Menyediakan jalan pintas untuk mengisytiharkan fungsi tanpa nama pendek menggunakan kata kunci lambda. Fungsi Lambda berfungsi apabila diisytiharkan menggunakan kata kunci def.

list()
Salin selepas log masuk

list() ialah Python terbina dalam yang mencipta objek senarai, ia menerima binaan boleh lelar dan menukarnya kepada senarai.

x % 2 != 0
or
x % 2 == 1
Salin selepas log masuk

Kedua-dua perwakilan di atas menggambarkan logik menapis unsur ganjil daripada senarai nilai.

Gunakan pemahaman kamus dan senaraikan pemahaman dengan pernyataan if-else

Program ini menggunakan pemahaman kamus untuk menukar kamus asal kepada kamus baharu dengan menapis unsur ganjil. Elemen aneh ini boleh ditapis dengan menggunakan pemampatan senarai dengan pernyataan if-else.

Contoh

Dalam contoh berikut, atur cara dimulakan menggunakan fungsi bernama odd_element yang menerima parameter bernama kamus. Parameter yang sama digunakan dengan teknik pemahaman iaitu list dan kamus dan if-statement untuk menetapkan penapisan unsur ganjil dalam kamus peranti nilai. Kemudian buat senarai nilai kamus dan simpannya dalam nama pembolehubah yang dipanggil kamus. Seterusnya, panggil fungsi menggunakan dan lulus nama parameter sebagai kamus yang mengandungi pasangan nilai kunci dan simpannya dalam pembolehubah filter_dict. Akhir sekali, kami mencetak hasilnya dengan bantuan filter_dict berubah-ubah.

def odd_elements(dictionary):
   return {key: [x for x in value if x % 2 != 0] for key, value in dictionary.items()}

# Create the dictionary
dictionary = {'A': [2, 4, 16, 19, 17], 'B': [61, 71, 90, 80, 10], 'C': [11, 121, 13, 14, 15]}
filter_dict = odd_elements(dictionary)
print("Filter odd elements from the value lists in dictionary:\n", filter_dict)
Salin selepas log masuk

Output

Filter odd elements from the value lists in dictionary:
{'A': [19, 17], 'B': [61, 71], 'C': [11, 121, 13, 15]}
Salin selepas log masuk

Gunakan untuk gelung dan Penapis() dengan fungsi Lambda

Atur cara ini menggunakan gelung for yang akan berulang ke atas kekunci dan nilai item kamus menggunakan item kaedah terbina dalam(). Ia kemudiannya akan mengalih keluar elemen ganjil daripada senarai kamus menggunakan fungsi terbina dalam bersarang seperti list(), filter() dan lambda.

Contoh

Dalam contoh berikut, kami akan menggunakan gelung for untuk mengulangi kamus pembolehubah yang mengandungi kunci dengan senarai nilai. Untuk menapis elemen ganjil ia akan menggunakan tiga fungsi terbina bersarang iaitu list(), filter() dan lambda() [Fungsi ini menetapkan keadaan sebagai x%2 != 0 dan ia akan menyemak sama ada senarai nilai yang diberikan adalah sama ada integer boleh dibahagikan dengan 2] dan menyimpannya dalam pembolehubah filtered_dictionary. Selepas menapis elemen ganjil, tetapkan nilai filtered_dictionary dalam filtered_dictionary. Kemudian buat kamus yang terdiri daripada senarai kunci dan nilai dan simpan dalam kamus berubah-ubah. Sekarang pembolehubah ini ditetapkan dalam hujah fungsi panggilan odd_element() dan disimpan dalam pembolehubah filter_dict().

def odd_elements(dictionary):
   filtered_dictionary = {}
# for loop
   for key, value in dictionary.items():
# Using filter() with lambda
      filtered_values = list(filter(lambda x: x % 2 != 0, value))
      filtered_dictionary[key] = filtered_values
   return filtered_dictionary
# create the dictionary
dictionary = {'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10], 'C': [11, 12, 13, 14, 15], 'D': [16, 17, 18, 19, 20]}
filter_dict = odd_elements(dictionary)
print("Filter odd elements from the value lists in dictionary:\n", filter_dict)
Salin selepas log masuk

Output

Filter odd elements from the value lists in dictionary:
 {'A': [1, 3, 5], 'B': [7, 9], 'C': [11, 13, 15], 'D': [17, 19]}
Salin selepas log masuk

Gunakan untuk pemahaman gelung dan senarai

Atur cara menggunakan gelung for menggunakan item kaedah terbina dalam() untuk mengulangi kamus dan kekunci, kemudian ia akan menggunakan gelung for dan pernyataan if dalam satu baris yang mewakili pemahaman senarai.

Contoh

Dalam contoh berikut, kami memulakan program dengan mentakrifkan fungsi bernama filter_odd_elements(), yang menerima parameter bernama kamus untuk mengakses nilainya. Seterusnya, cipta kamus kosong dalam pembolehubah filter_dictionary dan kemudian simpan kamus baharu sebagai hasilnya. Ia kemudiannya akan menggunakan gelung for untuk mengulangi setiap senarai nilai kamus. Teruskan dengan pemahaman senarai menggunakan pernyataan untuk dan jika dan simpannya dalam pembolehubah filter_values. Tukar pembolehubah yang sama dalam filter_dictionary[key]. Kemudian kembalikan hasil yang ditapis yang tidak mengandungi unsur ganjil kamus_penapis. Cipta kamus yang mengandungi senarai nilai dan simpan dalam pembolehubah dict. Pembolehubah baharu bernama f_dictionary menyimpan fungsi rekursif yang diluluskan argumen bernama dict. Akhir sekali, gunakan fungsi cetakan yang menerima pembolehubah f_dictionary untuk mendapatkan hasilnya.

def filter_odd_elements(dictionary):
   filter_dictionary = {}
   for key, value in dictionary.items():
# List Comprehension
      filter_values = [x for x in value if x % 2 != 0]
      filter_dictionary[key] = filter_values
   return filter_dictionary
# Creation of dictionary
dict = {'A': [307, 907], 'B': [100, 200], 'C': [110, 120]}
# use the calling function
f_dictionary = filter_odd_elements(dict)
print("Filtration of odd elements from dictionary value list:\n", f_dictionary)
Salin selepas log masuk

Output

Filtration of odd elements from dictionary value list:
 {'A': [307, 907], 'B': [], 'C': []}
Salin selepas log masuk

Menggunakan pemahaman kamus dan Penapis() dengan fungsi Lambda

Program ini menggunakan pemahaman kamus untuk membantu menukar kamus kepada bentuk kamus baharu. Kaedah penapis() menggunakan fungsi lambda untuk menghapuskan unsur ganjil daripada senarai nilai kamus.

Contoh

Dalam contoh berikut, kami akan menunjukkan cara pemahaman kamus menggunakan tiga kaedah untuk menyediakan logik berdasarkan penapisan unsur ganjil dalam senarai nilai dan menggunakan gelung for untuk mengulang setiap kunci dan nilai kamus.

def odd_elements(dictionary):
   return {key: list(filter(lambda x: x % 2 == 1, value)) for key, value in dictionary.items()}

# Create the dictionary
dict_1 = {'I': [1, 2, 3, 4, 5], 'II': [6, 7, 8, 9, 10], 'III': [11, 12, 13, 14, 15]}
filter_dict = odd_elements(dict_1)
print("ODD NUMBER FILTRATION IN DICTIONARY VALUES:\n", filter_dict)
Salin selepas log masuk

Output

ODD NUMBER FILTRATION IN DICTIONARY VALUES:
 {'I': [1, 3, 5], 'II': [7, 9], 'III': [11, 13, 15]}
Salin selepas log masuk

Gunakan pemahaman kamus dan senaraikan pemahaman

Atur cara menggunakan fungsi rekursif untuk mengembalikan teknik pemahaman dengan menggunakan pernyataan pulangan.

Contoh

Dalam contoh berikut, kami akan menggunakan fungsi rekursif dalam program untuk menapis unsur ganjil daripada nilai kamus dan mengembalikan kamus baharu dengan kunci yang sama dan nilai yang ditapis.

def odd_elements(dictionary):
   return {key: [x for x in value if x % 2 == 1] for key, value in dictionary.items()}
# create the dictionary and store the value by odd and even in the list
dictionary = {'list1': [100, 200, 300, 499, 599], 'list2': [699, 799, 899, 900, 1000]}
filter_dict = odd_elements(dictionary)
print("ODD NUMBER FILTRATION IN DICTIONARY VALUES:\n", filter_dict)
Salin selepas log masuk

输出

ODD NUMBER FILTRATION IN DICTIONARY VALUES:
 {'list1': [499, 599], 'list2': [699, 799, 899]}
Salin selepas log masuk

结论

我们讨论了基于从字典中的值列表中过滤奇数元素来解决此问题陈述的各种方法。上述所有示例大多使用综合技术,通过使用某种方法、循环或条件语句在 1-2 行内解决问题。当我们想要通过分配特定条件来过滤数据时,通常会使用程序目的。

Atas ialah kandungan terperinci Python - Tapis elemen ganjil daripada senarai nilai kamus. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan