リストを受け取り、冪集合を出力する関数を作成したのですが、期待する出力結果を得られません。
コードは以下の通りです。
python
1def power_set(item_lists): 2 3 p_sets = [[]] 4 5 for item in item_lists: 6 new_p_sets = p_sets.copy() 7 for element in new_p_sets: 8 element.append(item) 9 p_sets = p_sets + new_p_sets 10 11 return p_sets
例をあげると、power_set([1,2,3])を実行すれば
[[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]
が出力されるはずなのですが、出力された結果は
[[1, 2, 2, 3, 3, 3, 3],
[1, 2, 2, 3, 3, 3, 3],
[1, 2, 2, 3, 3, 3, 3],
[1, 2, 2, 3, 3, 3, 3],
[1, 2, 2, 3, 3, 3, 3],
[1, 2, 2, 3, 3, 3, 3],
[1, 2, 2, 3, 3, 3, 3],
[1, 2, 2, 3, 3, 3, 3]]
でした。コードの間違っている点を指摘していただけると幸いです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/03/23 07:35
2019/03/23 07:52
退会済みユーザー
2019/03/23 10:51