一个名字装一串东西。这是从「写玩具」到「写正经程序」的分水岭。
设 同学们 = ["小明", "小红", "小刚"]
打印(同学们) # [小明, 小红, 小刚]
方括号 [] 里放一串东西,用逗号隔开,就是一个列表。
列表里的东西有编号,从 0 开始:
设 同学们 = ["小明", "小红", "小刚"]
打印(同学们[0]) # 小明(第 1 个)
打印(同学们[1]) # 小红(第 2 个)
打印(同学们[2]) # 小刚(第 3 个)
⚠️ 编号从 0 开始,不是 1。这是新手最容易错的地方。为什么从 0?这是几乎所有编程语言的约定——第 1 个是 0 号,第 2 个是 1 号……习惯就好。
设 分数们 = [80, 90, 70]
分数们[1] = 95 # 把第 2 个改成 95
打印(分数们) # [80, 95, 70]
设 表格 = [[1, 2], [3, 4], [5, 6]]
打印(表格[1][0]) # 3(第 2 行第 1 个)
| 函数 | 作用 | 例子 |
|---|---|---|
追加(表, 项) |
末尾加一个 | 追加(同学们, "小美") |
插入(表, 位, 项) |
插到指定位置 | 插入(同学们, 1, "小丽") |
移除(表, 项) |
删掉某个值 | 移除(同学们, "小红") |
弹出(表) |
拿走最后一个 | 设 最后 = 弹出(同学们) |
弹出(表, 位) |
拿走指定位置 | 弹出(同学们, 0) |
设 名单 = ["甲", "乙", "丙"]
追加(名单, "丁")
打印(名单) # [甲, 乙, 丙, 丁]
插入(名单, 1, "插队")
打印(名单) # [甲, 插队, 乙, 丙, 丁]
设 拿走的 = 弹出(名单)
打印(拿走的) # 丁
打印(名单) # [甲, 插队, 乙, 丙]
追加、插入、移除、弹出会直接改原列表;而排序、倒序是返回一个新列表,原列表不动。
这些函数也能「挂」在列表上点出来,效果完全一样,读起来更像一句话:
设 名单 = ["甲", "乙"]
名单.追加("丙") # 等价于 追加(名单, "丙")
打印(名单) # [甲, 乙, 丙]
打印(名单.长度()) # 等价于 长度(名单) → 3
名单.追加(x) 和 追加(名单, x) 是同一个函数的两种写法,字典、字符串的内置函数也都能点调用。
设 数们 = [3, 1, 2]
打印(排序(数们)) # [1, 2, 3] (返回新列表)
打印(数们) # [3, 1, 2] (原列表没变)
打印(倒序(数们)) # [2, 1, 3]
打印(包含(数们, 2)) # 真
打印(包含(数们, 9)) # 假
打印(连接(数们, "-")) # "3-1-2"(连成一条文字)
设 同学们 = ["小明", "小红", "小刚"]
打印(长度(同学们)) # 3
访问不存在的编号,报 CN0308:
设 同学们 = ["小明"]
打印(同学们[5])
# 错误 CN0308:下标 5 超出范围(一共 1 个)
写一个程序:建一个购物清单 ["苹果", "香蕉"],往末尾追加 "橙子",再打印它和它的长度。
设 清单 = ["苹果", "香蕉"]
追加(清单, "橙子")
打印(清单) # [苹果, 香蕉, 橙子]
打印(长度(清单)) # 3
下一章:六、字典