Python實(shí)現(xiàn)求一個集合所有子集的示例
方法一:回歸實(shí)現(xiàn)
def PowerSetsRecursive(items): """Use recursive call to return all subsets of items, include empty set""" if len(items) == 0: #if the lsit is empty, return the empty list return [[]] subsets = [] first_elt = items[0] #first element rest_list = items[1:] #Strategy:Get all subsets of rest_list; for each of those subsets, a full subset list #will contain both the original subset as well as a version of the sebset that contains the first_elt for partial_sebset in PowerSetsRecursive(rest_list): subsets.append(partial_sebset) next_subset = partial_sebset[:] +[first_elt] subsets.append(next_subset) return subsets
def PowerSetsRecursive2(items): # the power set of the empty set has one element, the empty set result = [[]] for x in items: result.extend([subset + [x] for subset in result]) return result
方法二:二進(jìn)制法
def PowerSetsBinary(items): #generate all combination of N items N = len(items) #enumerate the 2**N possible combinations for i in range(2**N): combo = [] for j in range(N): #test jth bit of integer i if(i >> j ) % 2 == 1: combo.append(items[j]) yield combo
以上這篇Python實(shí)現(xiàn)求一個集合所有子集的示例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Matplotlib實(shí)戰(zhàn)之平行坐標(biāo)系繪制詳解
平行坐標(biāo)系是一種統(tǒng)計(jì)圖表,它包含多個垂直平行的坐標(biāo)軸,每個軸表示一個字段,并用刻度標(biāo)明范圍,下面我們就來看看如何繪制平行坐標(biāo)系吧2023-08-08Python?Type?Hints?學(xué)習(xí)之從入門到實(shí)踐
Type?Hints(類型注解)進(jìn)一步強(qiáng)化了Python是一門強(qiáng)類型語言的特性,它在?Python3.5?中第一次被引入。使用Type?Hints可以讓我們編寫出帶有類型的Python代碼,本文將詳細(xì)介紹一下Type?Hints,感興趣的小伙伴可以關(guān)注一下2021-11-11Matlab、Python為工具解析數(shù)據(jù)可視化之美
下面介紹一些數(shù)據(jù)可視化的作品(包含部分代碼),主要是地學(xué)領(lǐng)域,可遷移至其他學(xué)科,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-11-11Python使用PySimpleGUI打造輕量級計(jì)算器
PySimpleGUI是一個跨平臺的Python GUI庫,它支持Windows、Mac和Linux等多種操作系統(tǒng),本文將利用PySimpleGUI打造一個輕量級計(jì)算器,希望對大家有所幫助2024-03-03詳解非極大值抑制算法之Python實(shí)現(xiàn)
非極大值抑制(Non-Maximum Suppression,NMS),顧名思義就是抑制不是極大值的元素,可以理解為局部最大搜索。這個局部代表的是一個鄰域,鄰域有兩個參數(shù)可變,一是鄰域的維數(shù),二是鄰域的大小2021-06-06python基礎(chǔ)教程之popen函數(shù)操作其它程序的輸入和輸出示例
popen函數(shù)允許一個程序?qū)⒘硪粋€程序作為新進(jìn)程啟動,并可以傳遞數(shù)據(jù)給它或者通過它接收數(shù)據(jù),下面使用示例學(xué)習(xí)一下他的使用方法2014-02-02Python3中的最大整數(shù)和最大浮點(diǎn)數(shù)實(shí)例
今天小編就為大家分享一篇Python3中的最大整數(shù)和最大浮點(diǎn)數(shù)實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07