再帰関数について作業する全ての部分集合の集合を生成する一方で、私は以下に定義本のfuctionは私の予想外の出力与えたことに気づいた:「それをしないのはなぜ再帰スタックは、Pythonでの呼び出し - マッピング
[[]], None, None, None and None.
をforループがアクティブであるときに適切に動作しますが、アクティブでないときは完全に目的のサブセットにマップされません。
print(ss)
forループがアクティブであるときと同じことを表示しません。
私には何が欠けていますか?
def get_all_subsets(some_list):
"""Returns all subsets of size 0 - len(some_list) for some_list"""
if len(some_list) == 0:
# If the list is empty, return the empty list
return [[]]
subsets = []
first_elt = some_list[0]
rest_list = some_list[1:]
ss = get_all_subsets(rest_list)
print(ss)
# for partial_subset in ss:
# subsets.append(partial_subset)
# next_element = partial_subset[:] + [first_elt]
# subsets.append(next_element)
# return subsets
L = [1,2,3,4]
print(get_all_subsets(L))
私は見たいは次のとおりです。
[[2,3,4]、[3,4]、[4]、[]]ここで
がもっとありますSO値するコード:
def get_all_subsets(some_list):
"""Returns all subsets of size 0 - len(some_list) for some_list"""
if len(some_list) == 0:
# If the list is empty, return the empty list
return [[]]
subsets = []
first_elt = some_list[0]
rest_list = some_list[1:]
ss = get_all_subsets(rest_list)
print(ss)
for partial_subset in ss:
print(partial_subset)
# subsets.append(partial_subset)
# next_element = partial_subset[:] + [first_elt]
# subsets.append(next_element)
return subsets
、どのように--iは、見つけることができます - すべての-サブセット・オブ・セット[参照-with-exactly-n-elements](https://stackoverflow.com/questions/374626/how-can-i-find-all-the-subsets-of-a-set-with-exactly-n-elements) 「学生がこれを行うが、それとそれらとこれらの文字列を使用しない」機能を必要とする場合は、 –
インデントがオフになっている。 return文がなければ、関数は 'None'を返します。 – hpaulj