CAICP-E · Python 编程基础
一排小格子
用列表装一组东西,按下标取、往队尾加、再走一遍。
这一节要学会什么
#what一个变量装一个值,有时不够。一组分数要放一起。 一份购物清单也要放一起。这就用 列表。
你会创建列表。会用 [0] 取出第一格。
会 append 加到队尾。会用 len 问有几格。
还会用 for 把每一格走一遍。
插队、按位置拿走、按值删掉,后面先认一认。排序和切片下一课再学。 先把格子建好、加上、走一遍。
教室后面的储物柜
#hook教室后面有一排柜子。每个柜子有编号。 第一个常常标成 0 号。这和 Python 很像。
一格装一个名字。或者一格装一样要买的东西。

如果觉得有点难 把列表画成一排格子。 在格子上写 0、1、2。 先会建、会取第一格、会往队尾加。
如果已经会了 自己建一份购物清单。 会
append以后,再认一认 insert、pop、remove。[-1]是最后一格。下标超出范围会IndexError。
方括号:把一排放好
#explore-create列表用方括号。里面的东西用逗号隔开。
scores = [90, 85, 92]
names = ["小明", "小红", "小派"]
bag = []bag = [] 是空列表。里面还没有东西。
购物清单常常从空的开始。
打印整个列表,会把方括号一起显示出来。
print(names)会看到 ['小明', '小红', '小派']。
初学建议一列装同类。比如都是分数,或都是名字。 电脑允许混着装。你自己读着会更累。
下标从 0 开始数
#explore-index取出某一格,要写下标。下标从 0 开始。
lockers = ["小明", "小红", "小派"]
print(lockers[0])
print(lockers[1])
print(lockers[2])会打印小明、小红、小派。lockers[0] 是第一个柜子。
lockers[1] 是第二个柜子。不是第一个。

可以改某一个格子:
scores = [90, 85, 92]
scores[1] = 88
print(scores)变成 [90, 88, 92]。第二格从 85 改成了 88。
数下标时,用手指从 0 开始点。点错一格,取出来的就是别人的东西。
append:排到队尾
#explore-append往末尾加一个,用 append。
bag = ["铅笔"]
bag.append("橡皮")
bag.append("本子")
print(bag)得到 ['铅笔', '橡皮', '本子']。新来的站到最后。

空清单也可以先 append。
bag = []
bag.append("牛奶")
print(bag)得到 ['牛奶']。
append 最常用。购物、点名、记分数,都常往队尾加。
len 问长度,for 走一遍
#explore-walklen 问列表有几格。
bag = ["铅笔", "橡皮", "本子"]
print(len(bag))是 3。空列表的长度是 0。
for 可以直接走过列表。每一圈拿出一格。
for item in bag:
print(item)会一行一样东西。不用自己写 0、1、2。
这就是遍历。检查购物清单时特别合适。
也可以边走边问:
scores = [90, 85, 92]
for s in scores:
if s >= 90:
print(s)只打印优秀的分数。if 写在 for 里面,缩进一层。
把储物柜和购物清单串起来,可以是这样:
bag = []
bag.append("铅笔")
bag.append("橡皮")
print(bag[0])
print(len(bag))
for item in bag:
print(item)先建,再加,再走一遍。这节课的小目标就完整了。
排序、切一段,下一课才做。先不要急着写冒号切片。
另外几招,先认一认
#explore-extra主路上会建、会取、会加、会走,就够用了。下面几招先认一认。 题目里碰到,知道它在干什么。
也可以从右边数。-1 表示最后一个。
lockers = ["小明", "小红", "小派"]
print(lockers[-1])是小派。
只有 3 个柜子时,不要写 [3]。超出范围会报错。
名字叫 IndexError。
想插到指定位置,用 insert。第一个参数是位置。
第二个参数是要放进去的东西。
names = ["小明", "小派"]
names.insert(1, "小红")
print(names)得到 ['小明', '小红', '小派']。原来站在 1 号的人,会往后挪。

append 不加位置,永远去队尾。insert 要说清插到哪一格。
按位置拿走,用 pop。
colors = ["红", "黄", "蓝"]
last = colors.pop()
print(last)
print(colors)pop() 默认拿走最后一个。这里拿走「蓝」。
列表剩下红、黄。
也可以写下标:colors.pop(0) 拿走 0 号。
按值删除,用 remove。它删掉第一次出现的那个值。
nums = [2, 4, 2]
nums.remove(2)
print(nums)得到 [4, 2]。只删了第一个 2。
后面那个 2 还在。

pop 问:第几格离开?remove 问:哪个值离开?
先把这几招认下来。用的时候再翻回来看一眼。
这节课我学会了
#review记住这些:
- 列表用
[],下标从 0 开始。 append加到末尾。len问有几格。for x in 列表会把每一格走一遍。
试着在心里跑一遍:
bag = ["笔"]
bag.append("本")
print(bag[0])
print(len(bag))第一格是笔。长度是 2。
下一课才排队、切片。也才会改句子。 先把格子认熟。
试一试
#evaluate看完就来检查一下。选错了也可以再想。
单选题
下标取值
nums = [2, 4, 6] 时,nums[1] 的值是?
单选题
append 之后
a = [1, 2]。执行 a.append(3) 后,a 是?
单选题
len 问几格
bag = [「铅笔」, 「橡皮」, 「本子」]。len(bag) 是?
多选题
关于列表
下列说法正确的有哪些?可以多选。
可多选
未登录时不会保存学习进度