2013-07-16 12 views
7

In Python, è possibile specificare inizio e di fine indici durante la ricerca di un elemento della lista:Ricerca di un elemento di matrice che parte da un determinato indice

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

Esiste una funzione equivalente in Ruby? È possibile utilizzare le sezioni di matrice, ma sembra che sarebbe meno efficiente, a causa della sua necessità di oggetti intermedi.

risposta

1

Non c'è una funzione equivalente in Ruby.

È possibile eseguire la ricerca dall'inizio dell'array e inoltrare fino alla fine con #index oppure cercare dalla fine dell'array e tornare indietro con #rindex all'inizio. Per passare da un indice arbitrario a un altro, è necessario prima dividere l'array sugli indici di interesse utilizzando le sezioni di matrice (ad esempio con #[]) come suggerito dall'OP.

0

provare questo

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

arr[1,3].include? 2 
=> true 
arr[1,3].include? 1 
=> false 
Problemi correlati