Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menjana Semua Kemungkinan Gabungan daripada Senarai Senarai dalam Python?

Bagaimanakah Saya Boleh Menjana Semua Kemungkinan Gabungan daripada Senarai Senarai dalam Python?

Barbara Streisand
Lepaskan: 2024-12-06 01:45:10
asal
989 orang telah melayarinya

How Can I Generate All Possible Combinations from a List of Lists in Python?

Mencari Semua Gabungan Senarai Senarai

Dalam Python, tugas biasa ialah mendapatkan semua kemungkinan gabungan item daripada senarai yang diberikan daripada senarai. Memahami cara untuk mencapai ini adalah penting untuk pelbagai tugas manipulasi data. Sebagai contoh, katakan anda mempunyai senarai yang mewakili satu set pilihan, dan anda ingin menjana semua hasil yang berpotensi dengan memilih satu item daripada setiap pilihan ini. Di sinilah keperluan untuk fungsi gabungan timbul.

Modul itertools menyediakan alat mudah yang dipanggil itertools.product. Fungsi ini mengambil berbilang iterable sebagai input dan mengembalikan produk Cartesian unsur-unsurnya, menghasilkan semua kombinasi yang mungkin. Dalam kes kami, setiap senarai dalam data input adalah boleh diubah, dan hasil daripada semua senarai ini akan memberi kami gabungan yang diperlukan.

Sebagai contoh, mari kita pertimbangkan senarai senarai berikut:

[[1, 2, 3], [4, 5, 6], [7, 8, 9, 10]]
Salin selepas log masuk

Menggunakan itertools.product, kita boleh menjana semua kombinasi seperti ini:

import itertools

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10]]
combinations = list(itertools.product(*a))
Salin selepas log masuk

Outputnya adalah seperti berikut:

[(1, 4, 7), (1, 4, 8), (1, 4, 9), (1, 4, 10),
 (1, 5, 7), (1, 5, 8), (1, 5, 9), (1, 5, 10),
 (1, 6, 7), (1, 6, 8), (1, 6, 9), (1, 6, 10),
 (2, 4, 7), (2, 4, 8), (2, 4, 9), (2, 4, 10),
 (2, 5, 7), (2, 5, 8), (2, 5, 9), (2, 5, 10),
 (2, 6, 7), (2, 6, 8), (2, 6, 9), (2, 6, 10),
 (3, 4, 7), (3, 4, 8), (3, 4, 9), (3, 4, 10),
 (3, 5, 7), (3, 5, 8), (3, 5, 9), (3, 5, 10),
 (3, 6, 7), (3, 6, 8), (3, 6, 9), (3, 6, 10)]
Salin selepas log masuk

Ini menunjukkan bagaimana itertools.product boleh menjana dengan berkesan semua kemungkinan gabungan elemen daripada senarai senarai. Ia menawarkan penyelesaian yang elegan dan cekap untuk tugas pengaturcaraan biasa ini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Semua Kemungkinan Gabungan daripada Senarai Senarai dalam Python?. 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