【问题标题】:Python like list slicing in Groovy [duplicate]Groovy中的Python类似列表切片[重复]
【发布时间】:2017-02-09 08:59:46
【问题描述】:

给定以下列表:

a = [0,1,2,3,4,5]

在 python 中我可以这样做:

a[2:4] 会得到我[2,3]

鉴于 groovy 中的相同列表,我可以使用类似的切片机制吗?

【问题讨论】:

标签: python groovy


【解决方案1】:

答案是:

a[2..3]

另一个例子是如果你想要 [1,2,3,4]:

a[1..4]

【讨论】:

  • 如果你真的想要 半开 范围,就像在 Python 中一样,你总是可以这样做:a[2..<4]。此语法的优点是允许您指定 零长度 子列表,如下所示:a[2..<2]。无法使用包含范围语法创建 零长度 子列表。
  • @BalRog 进行半开范围的更好方法是使用 -1,就像在 a[2..-1] 中一样,因为您不需要知道长度。
  • @haridsv 仅当您要到达列表末尾时。如果您尝试隔离 interior 子列表,例如 OP,则不会产生预期的效果。此外,您的列表不是半开的,因为它明确包含元素“-1”,即列表的最后一个元素。
  • @BalRog 我对半开的含义有一个错误的印象,感谢您指出我的错误。
  • @haridsv 这一切都很好:)。对于记录 openclosed 这里是在数学区间符号的意义上使用的。数学符号/术语 open 区间 (50,100) 将包含 50 到 100 端点之间的所有点。 闭合区间[50,100]将包含50到100之间的所有点包括端点。 Half-open 可以是 (50,100][50,100)(在每种情况下都具有明显的含义),尽管对于像 Groovy 这样的基于 C 的语言,我们通常指的是两者中的后者。
猜你喜欢
  • 2015-05-09
  • 2013-10-24
  • 1970-01-01
  • 2020-03-10
  • 1970-01-01
  • 2013-04-28
  • 1970-01-01
  • 2013-06-20
  • 1970-01-01
相关资源
最近更新 更多