Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah saya boleh menjana semua kombinasi yang mungkin daripada senarai senarai dalam Python dengan cekap?

Bagaimanakah saya boleh menjana semua kombinasi yang mungkin daripada senarai senarai dalam Python dengan cekap?

DDD
Lepaskan: 2024-12-10 11:58:14
asal
969 orang telah melayarinya

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

Gabungan Senarai Senarai dalam Python

Dalam pengaturcaraan, menggabungkan elemen daripada berbilang senarai adalah tugas biasa. Soalan ini menumpukan pada penjanaan semua kemungkinan kombinasi item daripada senarai senarai, tanpa mengira saiznya.

Untuk mencapai matlamat ini, pustaka Python menawarkan penyelesaian yang bijak menggunakan fungsi itertools.product. Fungsi ini mengambil bilangan pembolehubah iterable sebagai input dan mengembalikan produk Cartesian, yang pada asasnya menghasilkan semua kemungkinan gabungan elemen daripada setiap lelaran.

Sebagai contoh, mari kita pertimbangkan senarai input senarai: [[1,2] ,3],[4,5,6],[7,8,9,10]].

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

Senarai gabungan yang terhasil akan mengandungi semua kemungkinan gabungan elemen daripada senarai input:

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

Melalui kuasa itertools.product, menjana kombinasi daripada senarai senarai menjadi operasi ringkas dan elegan dalam Python.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menjana semua kombinasi yang mungkin daripada senarai senarai dalam Python dengan cekap?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan