首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在REBOL或Red中,Python的列表[3:7]相当于什么?

在REBOL或Red中,Python的列表[3:7]相当于什么?
EN

Stack Overflow用户
提问于 2017-10-19 07:29:39
回答 2查看 129关注 0票数 2

使用Rebol pick,我只能得到一个元素:

代码语言:javascript
复制
list: [1 2 3 4 5 6 7 8 9]

pick list 3

在python中,可以获得一个完整的子列表。

代码语言:javascript
复制
list[3:7]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-19 08:05:13

  • AT可以在列表中寻找职位。
  • 默认情况下,COPY将从一个位置复制到列表的末尾
  • 复制的/PART精化允许您添加对复制的限制。

将整数传递给/PART假定要复制多少内容:

代码语言:javascript
复制
>> list: [1 2 3 4 5 6 7 8 9]

>> copy/part (at list 3) 5
== [3 4 5 6 7]

如果你提供一系列的位置作为结束,那么它将复制到那个点,所以如果你的范围意味着包容,你就必须超越它。

代码语言:javascript
复制
>> copy/part (at list 3) (next at list 7)
== [3 4 5 6 7]

有一些关于范围方言的建议,我找不到任何现成的。给出一个想法的简单代码:

代码语言:javascript
复制
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]
票数 6
EN

Stack Overflow用户

发布于 2017-10-19 08:05:46

代码语言:javascript
复制
>> list: [1 2 3 4 5 6 7 8 9]
== [1 2 3 4 5 6 7 8 9]
>> copy/part skip list 2 5
== [3 4 5 6 7]

因此,您可以跳到列表中的正确位置,然后根据需要复制任意数量的连续成员。

如果你想要一个等价的函数,你可以写你自己的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46824700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档