これは私がインターネット上で見つけたいくつかのコードであり、あまり説明がありません。私はそれがどのように機能するのか不思議です。私はyield
と[s for s in subsets(S)]
の部分を完全に理解していません。どんな洞察も大いに評価されるだろう!Python 3 - [サブセット(S)のs]とyield
def subsets(aList):
if aList ==[]: # base case
yield []
else:
first = aList[0]
rest = aList[1:]
for ss in subsets(rest): # include first or don't in each
yield ss # subset of rest
yield [first]+ss
print ("\n testing subsets")
S = ['A','B','C','D','E']
ss = [s for s in subsets(S)]
print ("The subsets of",S,"are:")
print (ss)