嵌套列表由於這些列最初是分組的,所以我以某種方式產生了嵌套的清單。我想刪除嵌套以獲得我可以操作的連續列表。
我希望得到的不是 {{:A, :B, :C}, (:D, :E, :F}},而是 {:A, :B, :C,
, :E, :F}
自動化和腳本回覆:嵌套列表這是一種方法,假設外部清單內的項目都是清單。如果不是,您只需添加一點程式碼來處理它。
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 )
)
);回覆:嵌套列表您只需將各個清單連接起來;
Names Default To Here( 1 );
l1 = {{:A, :B, :C}, {:D, :E, :F}};
l2 = l1[1] || l1[2];
我建議您花點時間閱讀腳本指南中有關清單的建立和操作的部分。
回覆:嵌套列表必須對此進行調整。現在有效。謝謝。
For Each( {val, idx}, this_list,
Insert Into( new_list, val )
);
回覆:嵌套列表啊,對不起。我正在測試字串,我忘記了將列表插入列表實際上會插入列表中未評估的項目。如果有任何不在嵌套列表中的列,它們將被插入為缺失,例如:
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}回覆:嵌套列表以 Jim 的解決方案為基礎。如果您有兩個以上的子清單:
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}