人人都能学编程
English 开始学习
课程 2 · Python 入门第 11 课 / 共 14 课免费阅读

列表基础 · 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())
逐步执行
  1. L2第一个元素和长度。apple 3
  2. L3append 在末尾加上 "date"。4 items
  3. L4替换下标 1 的元素。
  4. L5整个列表。['apple', 'blueberry', 'cherry', 'date']
  5. L7循环按顺序访问每个元素。APPLE ...

用输入建一个列表

动手试试

从 [] 开始,在循环里 append。

n = int(input())
scores = []
for i in range(n):
    scores.append(int(input()))
print(scores)
输入(每次 input() 读一行)
3
70
85
90
逐步执行
  1. L1一共几个分数:3。n = 3
  2. L2空列表。scores = []
  3. L4每一轮读一个数,加到末尾。[70] → [70, 85] → [70, 85, 90]
  4. 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))
  1. A
    5 4
  2. B
    2 3
  3. C
    5 3
查看答案

答案:A

5 加在了末尾,所以它是最后一个,现在有 4 个元素。

2. 这段代码会输出什么?

nums = [1, 2, 3]
nums[1] = 20
print(nums)
  1. A
    [1, 20, 3]
  2. B
    [20, 2, 3]
  3. C
    [1, 2, 3]
查看答案

答案:A

下标 1 是第二个元素。

动手练习

3 道练习,分三层:先预测程序的输出,再按新需求改程序,最后从零写一个。代码在浏览器里运行,提交马上判题。

  1. 预测输出修改和增长

    准确写出程序的输出。

  2. 改需求数一数大的

    不再求和,而是数一数列表里有几个数大于 10。把结果存在 count 里并打印。

  3. 从零写收集数字

    读入一个整数 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.