Comment combiner des tableaux dans Ruby

click fraud protection

"Quelle est la meilleure façon de combiner tableaux? "Cette question est assez vague et peut signifier plusieurs choses différentes.

Enchaînement

La concaténation consiste à ajouter une chose à une autre. Par exemple, concaténer les tableaux [1,2,3] et [4,5,6] te donnera [1,2,3,4,5,6]. Cela peut se faire de plusieurs manières Rubis.

Le premier est l'opérateur plus. Cela en ajoutera un tableau à la fin d'un autre, créant un troisième tableau avec les éléments des deux.

Vous pouvez également utiliser le concat (l'opérateur + et la méthode concat sont fonctionnellement équivalents).

Si vous effectuez un grand nombre de ces opérations, vous souhaiterez peut-être éviter cela. Création d'objets n'est pas gratuit et chacune de ces opérations crée un troisième tableau. Si vous souhaitez modifier un tableau sur place, en le rendant plus long avec de nouveaux éléments, vous pouvez utiliser l'opérateur <<. cependant si vous essayez quelque chose comme obtiendrez un r inattendu.>

Au lieu de l'attendu [1,2,3,4,5,6] tableau que nous obtenons [1,2,3,[4,5,6]]. Cela a du sens, l'opérateur append prend l'objet que vous lui donnez et l'ajoute à la fin du tableau. Il ne savait pas ou ne se souciait pas que vous ayez essayé d'ajouter un autre tableau au tableau. Nous pouvons donc le parcourir nous-mêmes.

instagram viewer

Définir les opérations

Le monde "combine" peut également être utilisé pour décrire les opérations définies. Les opérations d'ensemble de base d'intersection, d'union et de différence sont disponibles dans Ruby. N'oubliez pas que les «ensembles» décrivent un ensemble d'objets (ou en mathématiques, des nombres) qui sont uniques dans cet ensemble. Par exemple, si vous deviez effectuer une opération de définition sur le tableau [1,1,2,3] Ruby filtrera ce second 1, même si 1 peut être dans l'ensemble résultant. Soyez donc conscient que ces opérations d'ensemble sont différentes des opérations de liste. Les ensembles et les listes sont des choses fondamentalement différentes.

Vous pouvez prendre l'union de deux ensembles en utilisant le | opérateur. Il s'agit de l'opérateur "ou", si un élément se trouve dans l'un ou l'autre ensemble, il se trouve dans l'ensemble résultant. Donc, le résultat de [1,2,3] | [3,4,5] est [1,2,3,4,5] (rappelez-vous que même s'il y en a deux, il s'agit d'une opération définie, pas d'une opération de liste).

L'intersection de deux ensembles est une autre façon de combiner deux ensembles. Au lieu d'une opération "ou", l'intersection de deux ensembles est une opération "et". Les éléments de l'ensemble résultant sont ceux de tous les deux ensembles. Et, étant une opération "et", nous utilisons l'opérateur &. Donc, le résultat de [1,2,3] & [3,4,5] est simplement [3].

Enfin, une autre façon de «combiner» deux ensembles est de prendre leur différence. La différence de deux ensembles est l'ensemble de tous les objets du premier ensemble qui est ne pas dans le deuxième set. Donc [1,2,3] - [3,4,5] est [1,2].

Fermeture éclair

Enfin, il y a le "zipping". Deux tableaux peuvent être zippés ensemble en les combinant d'une manière plutôt unique. Il est préférable de le montrer d'abord et d'expliquer ensuite. Le résultat de [1,2,3] .zip ([3,4,5]) est [ [1,3], [2,4], [3,5] ]. Alors qu'est-ce qui s'est passé ici? Les deux tableaux ont été combinés, le premier élément étant une liste de tous les éléments en première position des deux tableaux. La fermeture à glissière est un peu une opération étrange et vous pourriez ne pas l'utiliser beaucoup. Son objectif est de combiner deux tableaux dont les éléments sont étroitement corrélés.

instagram story viewer