【发布时间】:2012-06-14 16:00:15
【问题描述】:
我正在尝试将一些 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 中,以下工作正常" - 我看到 Python 代码出错,
output[start:end]是一个列表,它被添加到一个字符串中(导致 TypeError)。 -
您确定该代码可以正常工作吗?在 Ruby 中,您不能将
end作为变量名。 -
@AndrewMarshall 这是示例代码,显示我的问题,搞砸了
-
@F.J 我的错误,又是快速示例代码来尝试显示问题
标签: python ruby list porting slice