Reputation: 1429
In Python, you can specify start and end indices when searching for a list element:
>>> 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
Is there an equivalent feature in Ruby? You can use array slices, but that seems as though it would be less efficient, because of its requiring intermediate objects.
Upvotes: 9
Views: 615
Reputation: 13612
There is not an equivalent feature in Ruby.
You can search from the start of the array and forward to the end with #index
, or search from the end of the array and go backward to the start with #rindex
. To go from one arbitrary index to another, you have to first slice the array down to the indices of interest using array slices (for example with #[]
) as the OP suggested.
Upvotes: 2
Reputation: 7225
try this out
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
arr[1,3].include? 2
=> true
arr[1,3].include? 1
=> false
Upvotes: 0