如何將一個列表插入另一個列表在遍歷列表中任意數量的值的所有組合我發布了一個答案,要求將一個列表插入另一個列表中。 InsertInto函數將插入的列表解壓縮到元素中,這不是我想要的。 我在列表末尾使用了一個對元素的賦值語句,該語句確實將列表作為元素插入。 另一種選擇是在插入列表之前將其包裝在另一個列表中(這樣它就可以將包裝好的列表解壓縮,然後插入原始列表。)
有沒有更好的方法將列表插入列表?結果和p都是列表。
結果[ N項(結果) + 1個] = p有點羅but,但可以正常工作,而且似乎很清楚,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 的引用。