嵌套列表由于列最初已分组,我不知何故生成了一个嵌套列表。我想删除嵌套,以便获得一个可以操作的连续列表。
我希望得到的不是 {{: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}