怎么做
- 题面里的虚线方框就是要填的空
- 点候选项,它会填进当前高亮的那个空
- 点已填好的空,可以把选项取回来重选
- 全部填满后「提交」才会亮起
卡住了就点右下角的 👩🏫 问 AI 老师,她会给提示但不直接给答案。
三类组合数据与复制陷阱
二级把「装一堆数据的类型」分成三类:
- 序列:有先后顺序,能用下标和切片——字符串
str、列表list、元组tuple。 - 集合
set:没有顺序,元素不重复。 - 映射:字典
dict,一个「键」对应一个「值」。
先看一段最容易错的代码:
ls = [3, 1, 2]
ls2 = ls # 不是复制:两个名字指向同一个列表
ls3 = ls[:] # 切片得到一份新列表,这才是复制
ls.append(4)
print(len(ls2), len(ls3))
print(type({}), type(set()))
本关要用的东西,先过一遍:
- 列表切片
ls[开始:结束:步长]:ls[::2]隔一个取一个,ls[::-1]倒过来;ls[1:3] = ['a', 'b']是切片赋值,把这一段换掉。 - 列表方法(都直接改原列表):
append(x)末尾加一个、insert(i, x)插到第 i 个位置、extend(列表)接上一串、pop(i)取出并删掉第 i 个(不写 i 就是最后一个)、remove(x)删掉第一个 x(没有就报错)、index(x)找 x 的位置、count(x)数 x 有几个、sort()排序、reverse()反转、clear()清空。 - 函数:
len/max/min/sum/sorted。sorted(ls)返回一个新列表;ls.sort()改原列表、返回None。操作符:+拼接、*重复、in判断在不在。 - 元组
t = (1, 2):和列表一样能索引切片,但不能改,t[0] = 5报TypeError。只有一个元素要写(5,)。 - 集合:
set(ls)去重;a | b并、a & b交、a - b差、a ^ b只在一边的;add(x)加、remove(x)删(没有就报错)、discard(x)删(没有也不报错)。 - 字典
d = {'高数': 90}:d[键]取值(键不存在报KeyError)、d.get(键, 默认值)不存在就给默认值;键 in d判断的是键;keys()/values()/items();pop(键)删;update(另一个字典)合并。 - 二级考场是 Python 3.5,字典和集合都不保证顺序,输出前先
sorted(...)。
上面的程序第一行输出【0】。想建一个空集合必须写【1】。元组 (1, 2, 3) 属于【2】类型。
请登录后作答。
去登录
👩🏫
AI
💬 题目评论
🔒
登录并作答后可看讨论