Menjana Semua Subset Set (Powerset)
Pertimbangkan set {0, 1, 2, 3}. Bagaimanakah kita memperoleh semua subset yang mungkin bagi set ini, yang dikenali sebagai set kuasanya?
Satu pendekatan yang berkesan ialah memanfaatkan modul itertools Python, yang menyediakan resipi mudah untuk tugasan ini.
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))
Setelah melaksanakan powerset([1,2,3]), kami memperoleh output berikut:
>>> list(powerset([1,2,3])) [(), (1,), (2,), (3,), (1,2), (1,3), (2,3), (1,2,3)]
Dengan tuple kosong dialih keluar, kami mendapat:
>>> list(powerset([1,2,3]))[1:] [(1,), (2,), (3,), (1,2), (1,3), (2,3), (1,2,3)]
Untuk menyesuaikan output dengan keperluan khusus anda, pelarasan pada pernyataan julat boleh dibuat (cth., julat(1, len(s) 1) untuk mengecualikan tuple kosong) .
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Semua Subset Set (Powerset) Menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!