rebol - Python 的 list[3 :7] in REBOL or Red? 等价于什么

标签 rebol red

使用 Rebol pick 我只能获取一个元素:

list: [1 2 3 4 5 6 7 8 9]

pick list 3

在 python 中,可以使用以下命令获取整个子列表

list[3:7]

最佳答案

  • AT可以在列表中寻找一个位置。
  • COPY默认情况下将从某个位置复制到列表末尾
  • COPY 的/PART 改进让您可以添加复制限制

将整数传递给/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/

相关文章:

rebol - 如果有的话,在 Red 中应用 Rebol 的等效项是什么?

ssl - 什么可能是这个 : ** Command Error: SSL Error: error:14077410:SSL routines:SSL23_GET_SERVER_HEL LO:sslv3 alert handshake failure 的原因

ide - Rebol 运行时窗口控件创建和更新

character-encoding - 使用 Rebol 3 执行文件编码转换

linux - 无法在 Linux 上运行 Red 语言脚本

loops - Red语言foreach中的变量值

rebol - 如何显示可用于某个词的优化?

在 REBOL 中解析数据 block

type-conversion - 将字符串转换为 Red 中的其他数据类型

string - Rebol/RED 解析。将解析后的字符串中的 ASCII 代码保存到变量中?