如何同时删除列表中的几项?我有一个清单:
let list1 map [ -1 * ? ] reverse (n-values ( ( max-pxcor - round (max-pxcor / 3) ) + 1 ) [?])
print list1
[-17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0]
Run Code Online (Sandbox Code Playgroud)
例如,我要删除:-列表中的最后4个项目:
[-17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4]
Run Code Online (Sandbox Code Playgroud)
列表中的最后9个项目:
[-17 -16 -15 -14 -13 -12 -11 -10 -9]
Run Code Online (Sandbox Code Playgroud)列表中的最后13个项目:
[-17 -16 -15 -14 -13]
Run Code Online (Sandbox Code Playgroud)非常感谢您的帮助。
您可以用来sublist从列表中保留您想要的内容。
例如,删除列表中的最后 4 项:sublist list1 0 (length list1 - 4)
您可以将其概括为一个函数:
to-report remove-last-n [ lst n ]
report sublist lst 0 (length lst - n)
end
Run Code Online (Sandbox Code Playgroud)
然后您可以使用它,例如:remove-last-n list1 4
将此与不幸命名的 结合起来sentence,您可以删除任意子列表:
to-report remove-sublist [ lst position1 position2 ]
report (sentence (sublist lst 0 position1) (sublist lst position2 length lst))
end
Run Code Online (Sandbox Code Playgroud)
这可以让你做
observer> show remove-sublist [-17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0] 2 13
observer: [-17 -16 -4 -3 -2 -1 0]
Run Code Online (Sandbox Code Playgroud)