151 votes

Comment retourner une partie d'un tableau en Ruby ?

Avec une liste en Python, je peux retourner une partie de celle-ci en utilisant le code suivant :

foo = [1,2,3,4,5,6]
bar = [10,20,30,40,50,60]
half = len(foo) / 2
foobar = foo[:half] + bar[half:]

Comme Ruby fait tout dans des tableaux, je me demande s'il n'existe pas quelque chose de similaire.

2voto

labyrinth Points 1838

J'aime les gammes pour cela :

def first_half(list)
  list[0...(list.length / 2)]
end

def last_half(list)
  list[(list.length / 2)..list.length]
end

Cependant, faites très attention à ce que le point final soit inclus dans votre fourchette. Cela devient critique sur une liste de longueur impaire où vous devez choisir où vous allez casser le milieu. Sinon, vous finirez par compter deux fois l'élément du milieu.

L'exemple ci-dessus placera systématiquement l'élément central dans la dernière moitié.

-4voto

shabunc Points 2687

Vous pouvez également écrire quelque chose comme ceci

   foo = [1,2,3,4,5,6]
   bar = [10,20,30,40,50,60]
   half = foo.length / 2
   foobar = (foo.first half) + (bar.last half)

=> [1, 2, 3, 40, 50, 60]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X