Cara Menjana Semua Subset Set Menggunakan itertools.combinations
Dalam Python, modul itertools.combinations menyediakan kaedah yang mudah dan cekap untuk menjana set kuasa set. Begini cara anda boleh melakukannya:
from itertools import chain, combinations def powerset(iterable): "powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)" s = list(iterable) return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))
Sebagai contoh, untuk mencari semua subset set {0, 1, 2, 3}, anda akan menggunakan kod berikut:
>>> list(powerset([0, 1, 2, 3])) [(), (0,), (1,), (2,), (3,), (0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3), (0, 1, 2), (0, 1, 3), (0, 2, 3), (1, 2, 3), (0, 1, 2, 3)]
Perhatikan bahawa tupel kosong () disertakan dalam set kuasa, kerana ia mewakili subset kosong.
Jika anda memilih untuk tidak mempunyai tuple kosong dalam keputusan, anda boleh mengubah suai julat dalam gelung gabungan seperti berikut:
def powerset(iterable): "powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)" s = list(iterable) return chain.from_iterable(combinations(s, r) for r in range(1, len(s)+1))
Ini akan mengecualikan tupel kosong daripada subset yang dikembalikan.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Semua Subset Set Menggunakan `itertools.combinations` Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!