Bagaimana untuk Memadankan Pilihatur Senarai dengan Kepanjangan Yang Berbeza Dengan Cekap Menggunakan itertools.product()?

Linda Hamilton
Lepaskan: 2024-10-26 11:55:29
asal
334 orang telah melayarinya

How to Efficiently Match Permutations of Lists with Varying Lengths Using itertools.product()?

Memadankan Pilihatur Senarai dengan Panjang Berbeza

Dalam pengaturcaraan, padanan pilih atur antara dua senarai adalah tugas biasa apabila memanipulasi data. Ini boleh dicapai dengan cekap menggunakan pendekatan berdasarkan panjang senarai yang lebih pendek.

Pertimbangkan dua senarai, a dan b, dengan len(a) >= len(b). Kami menyasarkan untuk memadankan elemen daripada senarai ini, dengan pendua dibenarkan untuk a, untuk membuat pilih atur.

Satu pendekatan mudah untuk menyelesaikannya ialah menggunakan fungsi itertools.product() daripada perpustakaan standard Python. Fungsi ini menjana produk Cartesian, dengan cekap menghasilkan semua kemungkinan gabungan elemen daripada senarai input. Dengan menggunakan itertools.product() dengan a dan b, kami memperoleh pilih atur mengikut len(b):

<code class="python">a = ["foo", "melon"]
b = [True, False]
permutations = list(itertools.product(a, b))</code>
Salin selepas log masuk

Senarai pilih atur yang terhasil akan mengandungi semua pasangan unsur yang mungkin daripada a dan b, membenarkan unsur pendua daripada a. Contohnya:

[("foo", True), ("foo", False), ("melon", True), ("melon", False)]
Salin selepas log masuk

Dengan menggunakan pendekatan ini, kami boleh memadankan pilih atur senarai dengan panjang yang berbeza-beza dengan berkesan, memastikan pendua dikendalikan mengikut panjang senarai yang lebih pendek.

Atas ialah kandungan terperinci Bagaimana untuk Memadankan Pilihatur Senarai dengan Kepanjangan Yang Berbeza Dengan Cekap Menggunakan itertools.product()?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!