Dynamoサンプル:繰り返し
Dynamoで繰り返すには
繰り返しだから「for」とか「While」だよね、とか思ってしまう、そこのアナタ(というか、私)。その考え方は捨てましょう、Dynamoでは邪魔です。
基本は「値を1つ」入れるところに、「リスト(配列)」を入れるだけです。これを取得できれば、「繰り返しよ、サヨナラ👋」になれます。
値を1つで試す
慣れているノードならいいのですけど、慣れてないなら、まずは値を1つ入れてためしてください。成功したら次のステップ、リストを入れます。
値にリストを入れる
x
に1~10のリストを入れてみます。1+1、2+1・・・10+1、と繰り返されています。基本はこれだけ。
値に2つのリストを入れる
y
にも1~10のリストを入れてみます。同じ行が組み合わされて、1+1、2+2・・・10+10と繰り返されています。
うまくいかない場合
リストがややこしい(階層がある)と、意図した通りにならなかったりします。
たとえば下記のような場合、
1+1、2+2・・・10+10
という結果を意図してたのに、
1+1、1+2・・・1+10
となっている!
そういう場合は、watch
でリストの階層をよく確認してください。
それぞれのリストの「1番最初の階層」の「1行目、2行目・・・」の組み合わせが基本です。
ここでは、
@L2
階層の1行目「1」と、`@L3'階層の1行目「0List」、つまり、「1、2・・・10」を組み合わせてるので、
1+1、1+2・・・1+10
となっています。Dynamoは正直。
同じ階層を示してあげたいので、x
とy
を右クリックして、「レベルを使用」を選択し、リストの階層を選択します。
うまくいかない場合2
リストがややこしい場合は、レベルを使用すればいいのね!
といっても、それではうまくいかない場合もあり。
私としては、
「11、22、33・・・」「61、72、83・・・」としたい。
こうしたい↓(実際は無理)
リストの数が同じでないと、「レベルを使用」ではどうにもならんという例。
リストの数が5と10なので、意図通りに組み合ってくれない。
(私の知識が足りないだけかもしれない)
「レベルを使用」を色々操作してみるけど、「そうじゃねぇ」みたいな感じ。
つまり、リストの数を合わせてあげる。
ここでは「1、2・・・5」を2回繰り返して、リストの数を10にする。
これで解決。
リストの階層がなくなったよ!という場合は、右クリックして「リスト構造を保持」を選択する。
@L1
とか@L2
とか分けわからん!という場合は、とにかくリストの階層構造を合わせてあげればよい。
リストを〇回繰り返してリストを作成するのは、List.Cycle
を使用。
Discussion