7

在 Python 中,您可以在搜索列表元素时指定开始和结束索引:

>>> l = ['a', 'b', 'a']
>>> l.index('a')
0
>>> l.index('a', 1) # begin at index 1
2
>>> l.index('a', 1, 3) # begin at index 1 and stop before index 3
2
>>> l.index('a', 1, 2) # begin at index 1 and stop before index 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 'a' is not in list

Ruby 中是否有等效的功能?您可以使用数组切片,但这似乎效率较低,因为它需要中间对象。

4

2 回答 2

1

Ruby 中没有等效的功能。

您可以从数组的开头搜索并使用 向前到结尾#index,或者从数组的末尾搜索并使用 向后搜索到开头#rindex。要从一个任意索引转到另一个,您必须首先#[]按照 OP 的建议使用数组切片(例如 with )将数组切片到感兴趣的索引。

于 2014-02-17T10:35:20.093 回答
0

试试这个

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

arr[1,3].include? 2
=> true
arr[1,3].include? 1
=> false
于 2013-07-16T12:32:35.303 回答