Hvordan kombinere matriser i rubin

click fraud protection

"Hva er den beste måten å kombinere arrays? "Dette spørsmålet er ganske vagt og kan bety noen få forskjellige ting.

sammenkjeding

Samkjøring er å legge en ting til en annen. For eksempel å slå sammen gruppene [1,2,3] og [4,5,6] vil gi deg [1,2,3,4,5,6]. Dette kan gjøres på noen få måter i Rubin.

Den første er plussoperatøren. Dette vil legge til en matrise til slutten av en annen, og skaper et tredje utvalg med elementene i begge.

Alternativt kan du bruke concat metoden (+ operator og concat metoden er funksjonelt ekvivalent).

Hvis du gjør mange av disse operasjonene, kan det være lurt å unngå dette. Oppretting av objekter er ikke gratis, og hver og en av disse operasjonene oppretter en tredje gruppe. Hvis du vil endre en matrise på plass, og gjøre den lengre med nye elementer, kan du bruke <

I stedet for det forventede [1,2,3,4,5,6] utvalg vi får [1,2,3,[4,5,6]]. Dette er fornuftig, den vedlagte operatøren tar gjenstanden du gir den og legger den til slutten av matrisen. Det visste eller brydde seg ikke om at du prøvde å legge en annen gruppe til matrisen. Så vi kan sløyfe over det selv.

instagram viewer

Angi operasjoner

Verden "kombinere" kan også brukes til å beskrive oppsatte operasjoner. De grunnleggende settoperasjonene for kryss, forening og forskjell er tilgjengelige i Ruby. Husk at "sett" beskriver et sett med objekter (eller i matematikk, tall) som er unike i det settet. Hvis du for eksempel skulle utføre en angitt operasjon på matrisen [1,1,2,3] Ruby vil filtrere ut den andre 1, selv om 1 kan være i det resulterende settet. Så vær klar over at disse settoperasjonene er annerledes enn listedrift. Sett og lister er grunnleggende forskjellige ting.

Du kan ta forening av to sett ved å bruke | operatør. Dette er operatøren "eller", hvis et element er i det ene settet eller det andre, er det i det resulterende settet. Så resultatet av [1,2,3] | [3,4,5] er [1,2,3,4,5] (husk at selv om det er to treere, er dette en angitt operasjon, ikke en listeaksjon).

Skjæringspunktet mellom to sett er en annen måte å kombinere to sett på. I stedet for en "eller" operasjon, er skjæringspunktet mellom to sett en "og" operasjon. Elementene i det resulterende settet er de i både settene. Som en "og" operasjon bruker vi & operatøren. Så resultatet av [1,2,3] & [3,4,5] er ganske enkelt [3].

Endelig, en annen måte å "kombinere" to sett på er å ta sin forskjell. Forskjellen på to sett er settet med alle objekter i det første settet som er ikke i det andre settet. Så [1,2,3] - [3,4,5] er [1,2].

Zipping

Endelig er det "glidelås." To matriser kan glidelås sammen og kombinerer dem på en ganske unik måte. Det er best å bare vise det først, og forklare etter. Resultatet av [1,2,3] ZIP ([3,4,5]) er [ [1,3], [2,4], [3,5] ]. Så hva skjedde her? De to matriser ble kombinert, det første elementet var en liste over alle elementene i den første posisjonen til begge matriser. Glidelås er litt merkelig operasjon, og det er ikke sikkert at du bruker mye bruk for det. Hensikten er å kombinere to matriser hvis elementer tett korrelerer.

instagram story viewer