Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah itertools.product Boleh Menjana Produk Cartesan Berbilang Senarai dalam Python?

Bagaimanakah itertools.product Boleh Menjana Produk Cartesan Berbilang Senarai dalam Python?

Susan Sarandon
Lepaskan: 2025-01-04 12:23:38
asal
301 orang telah melayarinya

How Can itertools.product Generate the Cartesian Product of Multiple Lists in Python?

Produk Cartesian Berbilang Senarai dengan itertools.product

Untuk mendapatkan produk Cartesian sekumpulan senarai, di mana setiap gabungan nilai yang mungkin dijana, gunakan fungsi itertools.product terbina dalam. Ciri ini telah disertakan dalam Python sejak versi 2.6.

Pelaksanaan:

import itertools

somelists = [
   [1, 2, 3],
   ['a', 'b'],
   [4, 5]
]

for element in itertools.product(*somelists):
    print(element)
Salin selepas log masuk

Sebagai alternatif, anda boleh menyediakan hujah berasingan kepada fungsi seperti ini:

for element in itertools.product([1, 2, 3], ['a', 'b'], [4, 5]):
    print(element)
Salin selepas log masuk

Mana-mana pendekatan akan menghasilkan yang sama output:

(1, 'a', 4)
(1, 'a', 5)
(1, 'b', 4)
(1, 'b', 5)
(2, 'a', 4)
(2, 'a', 5)
...
Salin selepas log masuk

Nota:

  • Teknik ini biasanya digunakan untuk mengelakkan gelung bersarang dalam.
  • Jika anda memerlukan Cartesian produk daripada senarai yang sama didarab dengan sendiri, pertimbangkan untuk menggunakan itertools.product dengan hujah yang dibongkar *.
  • Penggunaan * untuk membongkar hujah dalam konteks ini tidak berbeza daripada penggunaan lazimnya dalam panggilan fungsi.

Atas ialah kandungan terperinci Bagaimanakah itertools.product Boleh Menjana Produk Cartesan Berbilang 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