怎么做
  1. 题面里的虚线方框就是要填的空
  2. 点候选项,它会填进当前高亮的那个空
  3. 点已填好的空,可以把选项取回来重选
  4. 全部填满后「提交」才会亮起
卡住了就点右下角的 👩‍🏫 问 AI 老师,她会给提示但不直接给答案。

三类组合数据与复制陷阱

👁️ 24 人浏览 💬 0 人评论 ❤️ 添加收藏

二级把「装一堆数据的类型」分成三类:

  • 序列:有先后顺序,能用下标和切片——字符串 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
💬 题目评论
🔒 登录并作答后可看讨论