Menu
Coddy logo textTech

Listy nazwane

Część sekcji Podstawy ścieżki R w Coddy. Lekcja 74 z 78.

Podobnie jak wektory nazwane, listy mogą mieć nazwy przypisane do swoich elementów. Dzięki temu kod jest bardziej czytelny i możesz uzyskiwać dostęp do elementów za pomocą znaczących etykiet zamiast pozycji liczbowych.

Możesz przypisać nazwy podczas tworzenia listy:

person <- list(name = "Alice", age = 25, active = TRUE)
print(person)

Wynik:

$name
[1] "Alice"

$age
[1] 25

$active
[1] TRUE

Zwróć uwagę, że dane wyjściowe pokazują teraz $name zamiast [[1]]. Aby uzyskać dostęp do nazwanych elementów, użyj operatora $:

person <- list(name = "Alice", age = 25, active = TRUE)
print(person$age)

Dane wyjściowe:

[1] 25

Możesz też użyć podwójnych nawiasów z nazwą zapisaną jako ciąg znaków, co jest przydatne, gdy nazwa jest przechowywana w zmiennej:

person <- list(name = "Alice", age = 25)
print(person[["name"]])

Wynik:

[1] "Alice"

Modyfikowanie nazwanych elementów działa tak samo. Użyj $, aby zmienić istniejące wartości lub dodać nowe:

person <- list(name = "Alice", age = 25)
person$age <- 26
person$city <- "Paris"
print(person)

Wynik:

$name
[1] "Alice"

$age
[1] 26

$city
[1] "Paris"
challenge icon

Wyzwanie

Łatwy

Otrzymasz trzy wiersze danych wejściowych:

  1. Tytuł książki (np. The Great Gatsby)
  2. Autor książki (np. F. Scott Fitzgerald)
  3. Rok wydania (np. 1925)

Wykonaj następujące operacje:

  1. Utwórz nazwaną listę o nazwie book z trzema elementami: title, author i year (przekonwertuj rok na wartość liczbową)
  2. Wypisz tytuł książki za pomocą operatora $
  3. Wypisz rok wydania książki za pomocą podwójnych nawiasów, podając nazwę jako ciąg znaków
  4. Zaktualizuj year, przesuwając rok o 1, za pomocą operatora $
  5. Dodaj nowy element o nazwie available z wartością TRUE
  6. Wypisz całą zaktualizowaną listę

Na przykład, jeśli dane wejściowe to:

1984
George Orwell
1949

Wynik powinien być następujący:

[1] "1984"
[1] 1949
$title
[1] "1984"

$author
[1] "George Orwell"

$year
[1] 1950

$available
[1] TRUE

Wyjaśnienie:

  • book$title wypisuje wartość tytułu
  • book[["year"]] wypisuje pierwotny rok
  • Rok zostaje zaktualizowany z 1949 na 1950
  • Dodawany jest nowy element available o wartości TRUE

Spróbuj swoich sił

# Odczytaj dane wejściowe
con <- file("stdin", "r")
title <- suppressWarnings(readLines(con, n = 1))
author <- suppressWarnings(readLines(con, n = 1))
year <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: Napisz swój kod poniżej
# 1. Utwórz listę z nazwanymi elementami o nazwie 'book', zawierającą elementy: title, author i year (przekształć year na wartość liczbową)
# 2. Wyświetl tytuł książki za pomocą operatora $
# 3. Wyświetl rok wydania książki za pomocą podwójnych nawiasów kwadratowych, podając nazwę jako ciąg znaków
# 4. Zmień rok na późniejszy o 1 za pomocą operatora $
# 5. Dodaj nowy element o nazwie 'available' i wartości TRUE
# 6. Wyświetl całą zaktualizowaną listę
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator R online