Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya boleh menjana semua gabungan elemen daripada senarai senarai dalam Python?

Bagaimanakah saya boleh menjana semua gabungan elemen daripada senarai senarai dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-02 16:54:11315semak imbas

How can I generate all combinations of elements from a list of lists in Python?

Menjana Semua Gabungan Senarai Senarai

Apabila berurusan dengan struktur data bersarang, menjadi penting untuk memanipulasinya dengan cekap. Satu tugas biasa ialah mendapatkan semula semua kemungkinan gabungan elemen merentas berbilang senarai.

Untuk pembangun Python, fungsi itertools.product menyediakan penyelesaian ringkas dan elegan untuk masalah ini. Ia memerlukan berbilang iterable sebagai argumen dan menjana tupel yang mewakili semua kemungkinan gabungan elemen daripada setiap iterable.

Jawapan:

Untuk menjana semua gabungan elemen dalam senarai senarai , gunakan itertools.product seperti berikut:

import itertools

my_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10]]

result = list(itertools.product(*my_list))

Ini akan menghasilkan senarai tupel, setiap mewakili gabungan unik elemen daripada senarai input.

Contoh Output:

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

Menggunakan itertools.product ialah cara yang mudah dan cekap untuk menjana semua kombinasi yang mungkin unsur daripada struktur data kompleks dalam Python.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menjana semua gabungan elemen 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