Modyfikowanie hashy
Część sekcji Podstawy ścieżki Ruby w Coddy. Lekcja 75 z 88.
Tablice mieszające nie są statyczne po utworzeniu. W trakcie działania programu możesz dodawać nowe pary klucz-wartość, aktualizować istniejące wartości i usuwać wpisy.
Aby dodać nową parę lub zaktualizować istniejącą wartość, przypisz wartość do klucza za pomocą nawiasów kwadratowych:
person = {"name" => "Alice", "age" => 25}
person["city"] = "Paris" # Dodaje nową parę klucz-wartość
person["age"] = 26 # Aktualizuje istniejącą wartość
puts person # Wyświetla: {"name"=>"Alice", "age"=>26, "city"=>"Paris"}Jeśli klucz istnieje, wartość zostaje zastąpiona. Jeśli nie istnieje, do hasza zostaje dodana nowa para.
Aby usunąć parę klucz-wartość, użyj metody delete z kluczem, który chcesz usunąć:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
person.delete("city")
puts person # Wyświetla: {"name"=>"Alice", "age"=>25}Metoda delete zwraca usuniętą wartość, co może być przydatne, jeśli chcesz jej użyć:
person = {"name" => "Alice", "age" => 25}
removed_age = person.delete("age")
puts removed_age # Wyświetla: 25Jeśli spróbujesz usunąć klucz, który nie istnieje, Ruby po prostu zwróci nil bez zgłaszania błędu.
Wyzwanie
ŁatwyWczytaj cztery wiersze danych wejściowych:
- Imię i nazwisko ucznia (ciąg znaków)
- Początkową ocenę (liczba całkowita)
- Nową ocenę do zaktualizowania (liczba całkowita)
- Nową parę klucz-wartość w formacie
key:value(np.subject:Math)
Utwórz tablicę asocjacyjną o nazwie student z następującymi początkowymi parami klucz-wartość:
"name"przypisany do imienia i nazwiska ucznia"grade"przypisany do początkowej oceny (jako liczby całkowitej)
Następnie wprowadź następujące modyfikacje:
- Zaktualizuj klucz
"grade", przypisując mu nową ocenę - Dodaj nową parę klucz-wartość, używając klucza i wartości z czwartego wiersza danych wejściowych (wartość powinna pozostać ciągiem znaków)
- Usuń klucz
"name"z tablicy asocjacyjnej i zapisz usuniętą wartość
Wypisz usunięte imię i nazwisko w pierwszym wierszu, a następnie wypisz końcową tablicę asocjacyjną w drugim wierszu.
Na przykład, jeśli danymi wejściowymi są Alice, 85, 92 i subject:Math, wynikiem powinno być:
Alice
{"grade"=>92, "subject"=>"Math"}Jeśli danymi wejściowymi są Bob, 70, 75 i status:passing, wynikiem powinno być:
Bob
{"grade"=>75, "status"=>"passing"}Jeśli danymi wejściowymi są Charlie, 100, 95 i note:excellent, wynikiem powinno być:
Charlie
{"grade"=>95, "note"=>"excellent"}Spróbuj swoich sił
# Wczytaj dane wejściowe
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp
# TODO: Napisz swój kod poniżej
# 1. Utwórz hash o nazwie 'student' z kluczami "name" i "grade"
# 2. Zaktualizuj klucz "grade" nową wartością oceny
# 3. Sparsuj key_value_pair i dodaj wynik do hasha
# 4. Usuń klucz "name" i zapisz usuniętą wartość
# Wypisz usunięte imię
puts removed_name
# Wypisz końcowy hash
puts studentTa lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory — część 2
Operatory logiczne — część 1Operatory logiczne — część 2Powtórka — podstawy logikiOperatory logiczne — część 3Operatory logiczne — część 47Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych od użytkownika2Zmienne i typy danych
Liczby i zmienneTyp danych StringTyp danych BooleanTyp danych SymbolSprawdzanie typów danychKonwencje nazewnictwaPodsumowanie — tworzenie zmiennych5Podejmowanie decyzji
Instrukcja ifIf - elsePowtórka — prosty kalkulatorZagnieżdżone if - elseInstrukcja unless8Pętle
Pętla for z zakresamiPętla whilebreaknextPowtórka – silniaPętla timesPętla untilPętle zagnieżdżonePowtórka – dynamiczne wejście3Operatory — część 1
Operatory arytmetyczneOperator moduloSkrócone operatory arytmetycznePodsumowanie — prosta matematykaOperatory porównania6Podstawowe wejście i wyjście
Wyświetlanie za pomocą putsWyświetlanie za pomocą print i pWyświetlanie zmiennychWczytywanie za pomocą getsMetoda chompKonwersja typówPodsumowanie – kalkulator wiekuPodsumowanie – prawda czy fałszPoćwicz samodzielnie: Kompilator Ruby online