Bagaimana untuk Memasangkan Permutasi dengan Cekap daripada Senarai Panjang Berbeza?

Barbara Streisand
Lepaskan: 2024-10-29 01:03:02
asal
519 orang telah melayarinya

How to Efficiently Pair Permutations from Lists of Disparate Lengths?

Membuat Permutasi Secara Cekap daripada Senarai Berbeza

Matlamat anda ialah untuk menjana gabungan unik elemen daripada dua senarai, dengan bilangan gandingan dipandu oleh panjang senarai yang lebih pendek. Mari kita ilustrasikan konsep ini:

Pertimbangkan dua senarai:

names = ['a', 'b']
numbers = [1, 2]
Salin selepas log masuk

Output yang diingini ialah:

[('a', 1), ('b', 2)]
[('b', 1), ('a', 2)]
Salin selepas log masuk

Untuk mencapainya, anda boleh memanfaatkan kuasa Python itertools.product. Begini cara ia berfungsi:

<code class="python">from itertools import product

a = ['foo', 'melon']
b = [True, False]
c = list(product(a, b))</code>
Salin selepas log masuk

Dengan menggunakan produk, anda memperoleh semua kemungkinan gabungan berpasangan:

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

Dalam senario di mana satu senarai lebih panjang daripada yang lain (mis., nama mempunyai tiga elemen manakala nombor hanya mempunyai dua), pilih atur masih akan dikira berdasarkan senarai yang lebih pendek:

names = ['a', 'b', 'c']
numbers = [1, 2]
Salin selepas log masuk

Output yang dijangkakan:

[('a', 1), ('b', 2)]
[('b', 1), ('a', 2)]
[('a', 1), ('c', 2)]
[('c', 1), ('a', 2)]
[('b', 1), ('c', 2)]
[('c', 1), ('b', 2)]
Salin selepas log masuk

Pendekatan ini memastikan anda memperoleh semua kemungkinan kombinasi yang diperlukan untuk kes penggunaan khusus anda, tanpa mengira panjang relatif senarai input.

Atas ialah kandungan terperinci Bagaimana untuk Memasangkan Permutasi dengan Cekap daripada Senarai Panjang Berbeza?. 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!