2013-07-16 12 views
7

In Python beginnen, können Sie festlegen, beginnen und Indizes Ende, wenn ein Listenelement suchen:Suche nach einem Array-Elemente an einem gegebenen Index

>>> 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 

Gibt es eine Äquivalent-Funktion in Ruby? Sie können Array-Slices verwenden, aber das scheint, als wäre es weniger effizient, da es Zwischenobjekte erfordert.

Antwort

1

Es out ist nicht eine gleichwertige Funktion in Ruby.

Sie können vom Anfang des Arrays bis zum Ende mit #index suchen oder am Ende des Arrays suchen und mit #rindex zum Anfang zurückgehen. Um von einem beliebigen Index zu einem anderen Index zu wechseln, müssen Sie zuerst das Array mit Hilfe von Array-Slices (z. B. mit #[]), wie vom OP vorgeschlagen, auf die interessierenden Indizes zerlegen.

0

versuchen diese

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

arr[1,3].include? 2 
=> true 
arr[1,3].include? 1 
=> false 
Verwandte Themen