Menu
CoddyTech

命名列表

本课属于 Coddy R 学习旅程的“基础知识”单元。第 74 课,共 78 课。

和命名向量一样,你也可以为列表中的元素指定名称。这样能让代码更易读,并且可以通过有意义的标签而不是数字位置来访问元素。

创建列表时,你可以为元素指定名称:

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

输出:

$name
[1] "Alice"

$age
[1] 25

$active
[1] TRUE

注意,现在输出显示的是 $name,而不是 [[1]]。要访问命名元素,请使用 $ 运算符:

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

输出:

[1] 25

你也可以使用双层方括号,并将名称写成字符串。当名称存储在变量中时,这种方式很有用:

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

输出:

[1] "Alice"

修改命名元素的方式也一样。使用 $ 修改现有值或添加新值:

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

输出:

$name
[1] "Alice"

$age
[1] 26

$city
[1] "Paris"
challenge icon

挑战

简单

你将收到三行输入:

  1. 书名(例如,The Great Gatsby)
  2. 作者(例如,F. Scott Fitzgerald)
  3. 出版年份(例如,1925)

执行以下操作:

  1. 创建一个名为 book 的具名列表,其中包含三个元素:title、author 和 year(将 year 转换为数值)
  2. 使用 $ 运算符打印书名
  3. 使用双括号和作为字符串的名称打印书的年份
  4. 使用 $ 运算符将 year 更新为晚 1 年
  5. 添加一个名为 available、值为 TRUE 的新元素
  6. 打印更新后的完整列表

例如,如果输入为:

1984
George Orwell
1949

输出应为:

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

$author
[1] "George Orwell"

$year
[1] 1950

$available
[1] TRUE

说明:

  • book$title 会打印书名
  • book[["year"]] 会打印原始年份
  • 年份从 1949 更新为 1950
  • 添加一个值为 TRUE 的新元素 available

亲手试试

# 读取输入
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: 在下方编写你的代码
# 1. 创建一个名为 'book' 的命名列表,包含 title、author 和 year 元素(将 year 转换为数值)
# 2. 使用 $ 运算符打印 'book' 的 title
# 3. 使用双重方括号,并以字符串形式指定名称,打印 'book' 的 year
# 4. 使用 $ 运算符将 year 更新为 1 年后
# 5. 添加一个名为 'available' 的新元素,值为 TRUE
# 6. 打印更新后的完整列表
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: R 在线编译器