nek*_*une 1 ruby python porting list 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]
Run Code Online (Sandbox Code Playgroud)
将按预期输出:
['Apple']
['Orange']
['Pear']
Run Code Online (Sandbox Code Playgroud)
而红宝石代码:
output=["Apple","Orange","Pear"]
team_slices=[[0,1],[1,2],[2,3]]
team_slices.each do |start,ending|
print output[start..ending]
end
Run Code Online (Sandbox Code Playgroud)
将输出:
["Apple","Orange"]
["Orange","Pear"]
["Pear"]
Run Code Online (Sandbox Code Playgroud)
有没有办法做切片更像是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
Run Code Online (Sandbox Code Playgroud)
PS:在红宝石中你应该使用2个空格来缩进,如果你想坚持惯例;)
编辑| 只好重新命名end,以last因使用它作为一个语法关键字红宝石.
| 归档时间: |
|
| 查看次数: |
905 次 |
| 最近记录: |