python - 你如何在 Ruby 中做等同于 python 的列表切片?

标签 python ruby list porting slice

我正在尝试将一些 python 代码移植到 ruby​​,我做得很好,使用等效的 ruby​​ 函数,甚至删除/更改一些以更多地使用 ruby​​ 功能。 但是在核心点我需要从数组中获取切片 在 python 中,以下工作正常:

output=["Apple","Orange","Pear"]
team_slices=[(0,1),(1,2),(2,3)]
for start,end in team_slices:
    print output[start:end]

将按预期输出:

['Apple']
['Orange']
['Pear']

而 ruby 代码:

output=["Apple","Orange","Pear"]
team_slices=[[0,1],[1,2],[2,3]]
team_slices.each do |start,ending|
    print output[start..ending]
end

将输出:

["Apple","Orange"]
["Orange","Pear"]
["Pear"]

有什么方法可以做更等同于 python 的切片?我知道我可能在这里遗漏了一些简单的东西

最佳答案

似乎 python 的范围排除了最终值,所以只需使用 ruby​​ 中的 ... 变体:

output=["Apple","Orange","Pear"]
team_slices=[[0,1],[1,2],[2,3]]
team_slices.each do |start, last|
  print output[start...last]
end

PS:在 ruby​​ 中,如果你想遵守约定,你应该使用 2 个空格进行缩进;)

编辑|必须将 end 重命名为 last,因为 ruby​​ 将它用作语法关键字。

关于python - 你如何在 Ruby 中做等同于 python 的列表切片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11036943/

相关文章:

ruby-on-rails - 如何在 rails form_for 标签中添加一个空属性?

Ruby 比较总是返回 true

python - 如何在单击按钮后禁用按钮并在登录过程完成后通过检查 django 中的服务器响应来启用它

python - 给 openid 用户额外的信息

python - 在 python 中散列字符串会返回错误的结果?

python - pandas.dataframe 到orderedDictionary : using a passed argument to specify the key column name instead of explicitly writing it

ruby-on-rails - Rails 不允许我提前 30 天以上设置 'date' 字段 - 帮助 - Rails 3.0

c# - 在不同的地方添加元素到列表

python - 给定两个列表,没有得到创建元组列表的正确输出

java - 奇怪的行为: Java Comparator randomizes list entries