ネストされたリスト列が最初にグループ化されていたため、何らかの理由で列のネストされたリストが生成されました。ネストを削除して、操作できる列の連続したリストを作成したいと思います。
{{:A, :B, :C}, (:D, :E, :F}} の代わりに、{:A, :B, :C,
, :E, :F} にしたいと思います
自動化とスクリプトRe: ネストされたリスト外側のリスト内の項目がすべてリストであると仮定した場合の 1 つの方法を次に示します。そうでない場合は、それを処理するためにもう少しコードを追加する必要があります。
Names Default to Here( 1 );
this_list = {{:A, :B, :C}, {:D, :E, :F}};
new_list = {};
For Each( {v, i}, this_list,
For Each( {val, idx}, v,
Insert Into( new_list, val )
)
);Re: ネストされたリスト個々のリストを連結するだけです。
Names Default To Here( 1 );
l1 = {{:A, :B, :C}, {:D, :E, :F}};
l2 = l1[1] || l1[2];
リストの作成と操作に関するスクリプト ガイドのセクションをぜひ読んでみてください。
Re: ネストされたリストこれを微調整する必要がありました。今は動作します。ありがとうございます。
For Each( {val, idx}, this_list,
Insert Into( new_list, val )
);
Re: ネストされたリストああ、すみません。文字列をテストしていたのですが、リストにリストを挿入すると、実際にはリストの評価されていない項目が挿入されることを忘れていました。ネストされたリスト内にない列がある場合、それらは欠落として挿入されます。例:
Names Default To Here( 1 );
this_list = {{:A, :B, :C}, :D, {:E, :F, :G}};
new_list = {};
For Each( {v, i}, this_list, Insert Into( new_list, v ) );
//{:A, :B, :C, ., :E, :F, :G}
Name Expr() を使用するとこの問題を解決できます。
Names Default To Here( 1 );
this_list = {{:A, :B, :C}, :D, {:E, :F, :G}};
new_list = {};
For Each( {v, i}, this_list, Insert Into( new_list, Name Expr( v ) ) );
//{:A, :B, :C, :D, :E, :F, :G}Re: ネストされたリストJim のソリューションを基に構築します。サブリストが 2 つ以上ある場合:
Names Default To Here( 1 );
l1 = {{:A, :B, :C}, {:D, :E, :F}, {:G, :H, :I, :J}};
l3 = {};
for (i = 1, i <= nitems(l1), i++,
insertinto(l3, l1[i]);
);
print(l3);
{:A, :B, :C,
, :E, :F, :G, :H, :I, :J}