列表基础 · Python 从零开始
怎样把很多个值放在同一个名字下?
课程目录为什么需要它
十个分数用十个变量(s1、s2……)来存很笨,也没法用循环处理。列表 List 能按顺序存任意多个值,还能变长,和 for 搭配得天衣无缝。列表是 Python 里最常用的数据结构。
直觉理解
列表就像一张编了号的购物清单:
fruits = ["apple", "banana", "cherry"]- 下标和字符串一样:
fruits[0]是 "apple",fruits[-1]是 "cherry"。 len(fruits)是 3。- 和字符串不同,列表可以修改:
fruits[1] = "blueberry"替换一个元素,fruits.append("date")在末尾添加一个。 for f in fruits:按顺序访问每个元素 Element。
要一步步建一个列表:先建空列表([]),再在循环里 append。
定义
列表 List
A list is an ordered, changeable collection of values written in square brackets, such as [1, 2, 3].列表是写在方括号里的、有序且可修改的一组值,比如 [1, 2, 3]。
append() 方法
list.append(x) adds the item x to the end of the list.list.append(x) 把元素 x 添加到列表末尾。
示例
水果清单
动手试试打印列表时会带上方括号和引号。
fruits = ["apple", "banana", "cherry"]
print(fruits[0], len(fruits))
fruits.append("date")
fruits[1] = "blueberry"
print(fruits)
for f in fruits:
print(f.upper())逐步执行
- L2第一个元素和长度。
apple 3 - L3append 在末尾加上 "date"。
4 items - L4替换下标 1 的元素。
- L5整个列表。
['apple', 'blueberry', 'cherry', 'date'] - L7循环按顺序访问每个元素。
APPLE ...
用输入建一个列表
动手试试从 [] 开始,在循环里 append。
n = int(input())
scores = []
for i in range(n):
scores.append(int(input()))
print(scores)输入(每次 input() 读一行)
3 70 85 90
逐步执行
- L1一共几个分数:3。
n = 3 - L2空列表。
scores = [] - L4每一轮读一个数,加到末尾。
[70] → [70, 85] → [70, 85, 90] - L5打印建好的列表。
[70, 85, 90]
常见错误
下标越界
3 个元素的列表下标是 0、1、2。items[3] 会报 IndexError。
append 没有返回值
items = items.append(4) 会把 items 变成 None。直接写 items.append(4) 就行。
小测验
1. 这段代码会输出什么?
a = [3, 1, 2]
a.append(5)
print(a[-1], len(a))查看答案
答案:A
5 加在了末尾,所以它是最后一个,现在有 4 个元素。
2. 这段代码会输出什么?
nums = [1, 2, 3]
nums[1] = 20
print(nums)查看答案
答案:A
下标 1 是第二个元素。
动手练习
3 道练习,分三层:先预测程序的输出,再按新需求改程序,最后从零写一个。代码在浏览器里运行,提交马上判题。
- 预测输出修改和增长
准确写出程序的输出。
- 改需求数一数大的
不再求和,而是数一数列表里有几个数大于 10。把结果存在
count里并打印。 - 从零写收集数字
读入一个整数 n,再读入 n 个数(每行一个)。把它们存进一个列表,然后打印这个列表,下一行打印它们的和。
本课术语
| 术语 | 中文 | 英文定义 |
|---|---|---|
| List | 列表 | An ordered, changeable collection of values in square brackets. |
| Element | 元素 | One item stored in a list. |
| append() | append() 追加 | A list method that adds an item to the end. |
| IndexError | 下标越界错误 | The error raised when an index is outside the valid range. |