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
Barbara Streisandasal
2024-12-06 01:45:101032semak imbas

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]]

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))

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)]

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!

Kenyataan:
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