我正在尝试将一些 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/