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]
Output yang diingini ialah:
[('a', 1), ('b', 2)] [('b', 1), ('a', 2)]
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>
Dengan menggunakan produk, anda memperoleh semua kemungkinan gabungan berpasangan:
[('foo', True), ('foo', False), ('melon', True), ('melon', False)]
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]
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)]
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!