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

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

Patricia Arquette
Lepaskan: 2024-12-19 09:27:09
asal
855 orang telah melayarinya

How Can I Generate All Possible Combinations of a List's Elements in Python?

Menjana Semua Kemungkinan Gabungan Elemen Senarai

Anda sedang mencari kaedah untuk menjana semua kemungkinan gabungan 2^N daripada senarai 15 elemen, menampung gabungan mana-mana panjang sambil mengekalkan susunan asal. Walaupun pendekatan anda yang melibatkan perwakilan binari ialah pilihan yang berdaya maju, mari kita terokai penyelesaian yang lebih komprehensif.

Daripada bergantung pada perwakilan binari, pertimbangkan untuk menggunakan fungsi itertools.combinations() daripada perpustakaan standard Python. Fungsi ini menjana jujukan semua kombinasi panjang tertentu daripada lelaran tertentu. Dengan mempelbagaikan parameter panjang, anda boleh mendapatkan kombinasi mana-mana saiz yang dikehendaki.

Kod Python berikut menunjukkan pendekatan ini:

import itertools

stuff = [1, 2, 3]

# Loop through all possible lengths
for L in range(len(stuff) + 1):
    # Generate combinations of length L
    for subset in itertools.combinations(stuff, L):
        print(subset)
Salin selepas log masuk

Kod ini akan menjana kesemua 32,768 kemungkinan gabungan elemen dalam senarai bahan, tanpa mengira panjangnya.

Sebagai alternatif, untuk penyelesaian yang lebih diperkemas, anda boleh menggunakan rantai() dan combinations() berfungsi untuk menjana satu jujukan yang mengandungi semua gabungan semua panjang yang mungkin:

import itertools

from itertools import chain, combinations

def all_subsets(ss):
    return chain(*map(lambda x: combinations(ss, x), range(0, len(ss)+1)))

for subset in all_subsets(stuff):
    print(subset)
Salin selepas log masuk

Kod ini mencapai hasil yang sama tetapi dengan cara yang lebih ringkas dan boleh dikatakan elegan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Semua Kemungkinan Gabungan Elemen 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