Hash lub słownik (w innych językach programowania) odnosi się do struktury danych, która przechowuje dane w parach kluczowych. Każdy klucz w skrócie musi być unikalny i może być dowolnym ważnym typem danych Ruby.
Skróty są niezwykle przydatne i mogą zaoszczędzić dużo czasu i kodu, gdy są odpowiednio używane. Chociaż zachowują się jak tablice, skróty używają unikalnych kluczy zamiast pozycji całkowitej. Pomyśl o skrótach jako o prawdziwym słowniku, w którym każdy klucz jest unikalny i ma odpowiednie znaczenie lub wartość.
W tym przewodniku dowiemy się, jak sortować skrót w Ruby za pomocą różnych metod. Nie, nie będziemy używać fantazyjnych algorytmów ani testów porównawczych. Skoncentrujemy się na wbudowanych metod sortowania Ruby.
Ruby Hash - Podstawy
Tworzenie skrótu w Ruby jest bardzo proste. Zaczynasz od zdefiniowania klucza, a następnie symbolu =>. Załączamy przedmioty w skrócie w pary kręconych aparatów ortodontycznych.
„key” => „wartość”Możesz dodać wiele par wartości kluczy, oddzielając je za pomocą przecinków:
„MS” => „Massachusetts”, „id” => „Idaho”, „ga” => „Georgia”, „in” => „Indiana”Ruby obsługuje również inny format, aby stworzyć skrót. Zamiast używać notacji rakietowej =>, możesz używać kolonów.
„MS”: „Massachusetts”, „id”: „Idaho”, „GA”: „Georgia”, „w”: „Indiana”Niezależnie od tego, jaką metodę używasz do utworzenia rubinowego skrót.
Jeśli chcesz nauczyć się pracować z Ruby Haszhes, rozważ samouczek:
https: // linuxhint.com/indic-to-użytkowe-rubie-hashes/
Sortowanie skrótów w Ruby
Aby posortować skrót w Ruby bez użycia niestandardowych algorytmów, użyjemy dwóch metod sortowania: sortowania i sortowania.
Za pomocą wbudowanych metod możemy sortować wartości w skrócie według różnych parametrów.
Omówmy:
#sortować
Pierwszą metodą użycia podczas sortowania skrótu jest metoda sortowania. Metoda sortowania zwraca tablicę sortowanych wartości. Działa poprzez porównanie wartości za pomocą operatora.
Przykład 1
Rozważ przykład skrót poniżej:
State_info = „Massachusetts” => 78, „Idaho” => 72, „Georgia” => 41, „Indiana” => 45Gdy wywołamy metodę sortowania z skrótem, zwróci klucze sortowane w kolejności alfabetycznej.
[[„Georgia”, 41], [„Idaho”, 72], [„Indiana”, 45], [„Massachusetts”, 78]]Zauważysz, że wynik z posortowanego skrótu ma postać tablicy wielowymiarowej. Jak wspomniano, metoda sortowania zwraca tablicę sortowanych wartości.
Aby uzyskać dostęp do posortowanych par wartości kluczy, możesz użyć notacji indeksu.
sorted_state = state_info.sortowaćPrzykład 2
Rozważmy scenariusz, w którym musimy sortować skrót według wartości zamiast kluczy.
Niestety, nie ma bezpośredniego sposobu sortowania skrótu według klawiszy. Możemy jednak użyć metody wartości do pobrania wartości skrótu i sortowania.
Spójrz na poniższy przykład:
State_info.wartości.sortowaćPo wykonaniu powyższego polecenia powinniśmy uzyskać wartości skrótu posortowane w formacie tablicy.
[41, 45, 72, 78]Przykład 3
Wartości metody sortowania są typu tablicy. Możemy je zmienić z powrotem na skrót za pomocą metody TO_H.
Spójrz na poniższy przykład:
State_info = „Massachusetts” => 78, „Idaho” => 72, „Georgia” => 41, „Indiana” => 45Powyższy przykład zwróci skrót posortowany jako:
„Georgia” => 41, „Idaho” => 72, „Indiana” => 45, „Massachusetts” => 78W przykładzie 2 zaimplementowaliśmy prosty sposób sortowania skrótu według wartości. Jest jednak jedna wada: tylko sortujemy klucze, a nie klawisze.
Aby to rozwiązać, możemy zanurzyć się w użyciu metody sort_by.
Przykład 1
Rozważ skrót State_Info z poprzednich metod:
State_info = „Massachusetts” => 78, „Idaho” => 72, „Georgia” => 41, „Indiana” => 45Za pomocą sortowania możemy wykonać następującą operację:
State_info.sort_by | k, v | vZauważysz, że metoda używa bloków rubinowych do sortowania wartości w określonej kolejności. Sprawdź nasz samouczek na Ruby, aby dowiedzieć się więcej.
Powstała wartość to:
[[„Georgia”, 41], [„Indiana”, 45], [„Idaho”, 72], [„Massachusetts”, 78]]Więc +++ rting wartości z powstałej tablicy jest w kolejności rosnącej. W tym przykładzie uwzględniamy zarówno klucze, jak i ich odpowiednie wartości.
Podobnie możesz przywrócić wynik do skrótu:
State_info.sort_by | k, v | v.to_hPrzykład 2
Domyślnie metody sortowania w Ruby sortuje się według kolejności rosnącej. Aby uzyskać posortowane wartości w odwrotnej kolejności, możemy wywołać metodę #Reverse.
State_info = „Massachusetts” => 78, „Idaho” => 72, „Georgia” => 41, „Indiana” => 45Przykład 3
Załóżmy, że mamy zagnieżdżony hasz. Jak sortujemy wartości wewnątrz zagnieżdżonego haszu?
Rozważ następujący przykład skrótu:
stany =Aby sortować skrót według wartości zagnieżdżonego skrótu, możemy zrobić sort_by, jak pokazano:
państwa.sort_by | k, v | v [„fips_code”]Powstałe wartości są jako:
[[„Georgia”, „ABR” => „GA”, „FIPS_CODE” => 13],Jak pokazuje ten przykład, wyniki wydrukowane posortowane w kolejności rosnącej wartości w zagnieżdżonym skrócie.
Wniosek
Korzystając z tego samouczka, spojrzałeś na sposób użycia metod sortowania i sort_by, aby sortować skrót w Ruby. Korzystając z tego przewodnika, możesz napisać krótki i bardziej wydajny kod rubinowy.