如何将一个列表插入另一个列表在遍历列表中任意数量的值的所有组合我发布了一个答案,要求将一个列表插入另一个列表列表中。 InsertInto函数将插入的列表解压缩到元素中,这不是我想要的。 我对列表末尾的元素使用了一个赋值语句,该语句确实将列表作为元素插入。 另一种选择是在插入列表之前将其包装在另一个列表中(这样它就可以将包装好的列表解压缩,然后插入原始列表。)
有没有更好的方法将列表插入列表?结果和p都是列表。
结果[ N项(结果) + 1个] = p有点罗y,但可以正常工作,而且看起来很清楚,p正存储在列表中的最后一个元素之后。 很好的扩展,但是不能插入其他任何地方。
result = {“ a”};
p = {“ b”,“ c”};
结果[N个项目(结果)+1] = p; //罗word,但意图很明确
显示(结果);
/ *:
结果= {“ a”,{“ b”,“ c”}}}; // 好的
Insertinto(结果,p)将不起作用,因为它会插入p的元素,而不是p。
result = {“ a”};
p = {“ b”,“ c”};
insertinto(result,p); //看起来不错,但是...
显示(结果);
/ *:
结果= {“ a”,“ b”,“ c”}}; //不是我想要的
insertinto(结果,evallist({p}))可以,但是看起来比赋值可读性差。 可以插入任何地方,但可以制作一个额外的副本。
result = {“ a”};
p = {“ b”,“ c”};
insertinto(结果,evallist({p})); //制作清单的额外副本,难以阅读
显示(结果);
/ *:
结果= {“ a”,{“ b”,“ c”}}}; //好:我想要的
脚本编写回复:如何将一个列表插入另一个列表FWIW在您的第二个示例中,我总是以EvalList()的方式进行操作。 我想您可以通过这种方式进行操作,并且在您需要/需要之前不要进行评估...不确定是否会给您带来很多好处(?)
result = {"a"};
p = {"b", "c"};
Insert Into( result, {p} ); //don't evaluate p here... but of course p is non-static
show(result[2][1]); //can still access elements of p if desired
Show( Eval List( result ) ); //or can eval to see the whole thing

回复:如何将一个列表插入另一个列表不是直接的解决方案,而是作为一种解决方法,我倾向于使用关联数组,类似于@pmroz在您的链接中建议。
回复:如何将一个列表插入另一个列表我下次可以用。 即使使用更复杂的数据结构,它看起来也更简单,并且由于我已经在生成带有nitems(...)+ 1 ...的索引,所以,它可能是更好的选择。
Re: 如何将一个列表插入到另一个列表中是的。 我用过 evallist() 方法,总觉得需要注释来解释。 在我的原始代码(顶部链接)中,我在插入之间不断更改 p,因此它不能只插入对 p 的引用。