使用 Rebol pick 我只能获取一个元素:
list: [1 2 3 4 5 6 7 8 9]
pick list 3
在 python 中,可以使用以下命令获取整个子列表
list[3:7]
最佳答案
将整数传递给/PART 假定您要复制多少内容:
>> list: [1 2 3 4 5 6 7 8 9]
>> copy/part (at list 3) 5
== [3 4 5 6 7]
如果您提供一个系列位置作为结束,那么它将复制直到该点,因此如果您的范围意味着您必须超过它具有包容性。
>> copy/part (at list 3) (next at list 7)
== [3 4 5 6 7]
已经有一些关于范围方言的提案,我找不到任何临时的。简单的代码给出一个想法:
range: func [list [series!] spec [block!] /local start end] [
if not parse spec [
set start integer! '.. set end integer!
][
do make error! "Bad range spec, expected e.g. [3 .. 7]"
]
copy/part (at list start) (next at list end)
]
>> list: [1 2 3 4 5 6 7 8 9]
>> range list [3 .. 7]
== [3 4 5 6 7]
关于rebol - Python 的 list[3 :7] in REBOL or Red? 等价于什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46824700/