ノード一覧に戻る

リスト zip

list_zip

2つのリストまたはパレットを短い方の長さに合わせて index ごとに組にします

確認済み
解説あり

入力ポート

名前説明
A
a
Any
必須
1つ目のリストまたはパレットです
B
b
Any
必須
2つ目のリストまたはパレットです

出力ポート

名前説明
zip結果
entries
List<Map>
{ index, a, b } のマップ一覧です
要素数
count
Int
zip した組の数です

概要

2本のリストを「同じ番号どうしのペア」に組むノードです。[サイズ列][色列] から「1番目のサイズ+1番目の色」…という対応表を作り、後段の list_map の式で両方の値を同時に使えるようにします。

使い方のポイント

  • zip 後の list_map では a / b が式にそのまま書ける(a + b 等)。 「2系列の数値から1系列を合成する」のが定番の流れ
  • 全組み合わせが欲しいなら cartesian_product。zip は「対応するペアのみ」
  • 長さが違うと短い方に切り詰められる(余りは捨てられる)ので、 候補数は揃えておくのが安全

関連ノード

  • cartesian_product — ペアではなく全組み合わせ
  • list_map — zip 結果の消費先
  • list_enumerate — 1本のリストに番号を付けるだけの版
  • variant_range / seed_range — 入力リストの生成元

まず大事なこと

  • ListZip同じ番号どうしを組にする ノードです
  • 長さは 短い方のリスト に揃います

まずはこの例

次の 2 つのリストを入れます。

a = [10, 20, 30]
b = ["A", "B"]

このとき entries はこうなります。

[
  { "index": 0, "a": 10, "b": "A" },
  { "index": 1, "a": 20, "b": "B" }
]

count はこうです。

count = 2

後段からどう見えるか

ListMapListFilter にこの entries を入れると、

  • index
  • a
  • b

をそのまま式で使えます。

例:

a + b
a * 10 == b

どういう時に使うか

  • 値一覧とラベル一覧を対応付けたい時
  • seed 一覧と別パラメータ一覧をペアにしたい時
  • 2系列の候補を「同じ番号どうし」でまとめたい時

注意

  • 余った要素は捨てられます
  • PaletteList<Color> として扱います
ノード一覧に戻る
リスト zip — PixPipeline ノード解説