前提・実現したいこと
長さnのlistについて、各要素が0or1について順番に回していく処理を書きたいと考えています。
この処理を(比較的)シンプルに書くにはどのようにすればよいでしょうか。
例
イメージとしては以下のようになります。
python
1n = 3 2 3def def_***(lst_old): 4 #関数の処理 5 return let_new 6 7lst = [0,0,0] 8for i in range(2**n): 9 print(lst) 10 lst = def_***(lst) 11print(lst)
上記の時、以下のような出力がある想定です。
[0,0,0] [0,0,1] [0,1,0] ... [1,1,0] [1,1,1]
・ある程度の規則性があれば順番は問いません。自作関数での処理でなくても構いません。
・上記はあくまで例で、printすることが目的ではありません。
試したこと
・0から2**nの整数を2進数に直して。。と考えたのですが、値が小さい時桁数が合わないため断念
・全ての組み合わせのリストのリストを事前に作って。。と考えたのですが、リストのリストを効率的に作る方法が思いつきませんでした。
良い案がある方がおられましたらよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/01 05:50