一、dict(字典)—— 就是 “名字 - 内容” 对照表

1. 长啥样?

{ key: value } 写法,一对一对存:

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
  • key:名字(比如 ‘Michael’)
  • value:对应的值(比如 95 分)

2. 怎么用?

  • 查成绩:d['Michael'] → 得到 95
  • 加 / 改成绩:d['Jack'] = 88
  • 一个 key 只能对应一个值,后面会覆盖前面

3. key 不存在会报错!

两种安全方法:

  1. 'Thomas' in d → 看在不在,返回 True/False
  2. d.get('Thomas') → 不存在返回 None(不报错)

4. 删除

d.pop('Bob')

5. dict 特点(必记)

  • 查找超级快,数据再多也不慢
  • 占内存多
  • key 必须是不可变的(字符串、数字可以,list 不行)

二、set(集合)—— 就是 “不重复的一堆东西”

1. 特点

  • 没有重复值,重复会自动删掉
  • 只存 key,不存 value

2. 怎么建

s = {1, 2, 2, 3}
# 自动变成 {1,2,3}

3. 常用操作

  • 添加:s.add(4)
  • 删除:s.remove(3)
  • 交集(都有的):s1 & s2
  • 并集(合起来):s1 | s2

4. 注意

  • set 里不能放 list,会报错
  • 也是无序的

三、一句话分清 list /dict/set

  • list:有序列表,可重复
  • dict:键值对,查找快,key 不能重复
  • set:只存 key,自动去重

四、超简口诀

  • 一对一对存、快速查找 → 用 dict
  • 去重、算交集并集 → 用 set
  • key 只能用字符串、数字这种不变的东西
  • list 不能当 key,也不能放进 set

===分割线=练习题

第 1 题(dict 基础)

创建一个字典,存三个名字和年龄:

  • 小明: 18
  • 小红: 19
  • 小刚: 20

然后打印出 小红的年龄

d={'小明':'18','小红':'19','小刚':'20'}
# print(d) #❌️,因为题目是:打印小红的年龄
print(d['小红'])

第 2 题(dict 新增与修改)

接着上面的字典:

  1. 给字典加一个人:小李,21 岁
  2. 把小明的年龄改成 20
  3. 打印整个字典看看结果
d={'小明':'18','小红':'19','小刚':'20'}
# d.add('小李','21') #❌️add() 是 set(集合) 的方法!字典的加东西是:d['小李'] = 21
# d['小李','21']❌️
d['小李']=21
# d.update('小明','20')  #❌️
d['小明']=20
print(d)

第 3 题(set 去重)

有一个列表:

lst = [1, 2, 2, 3, 3, 3, 4]

把它变成集合,去掉重复数字,然后打印出来。

lst = [1, 2, 2, 3, 3, 3, 4]
set1 = set(lst)
# 没有打印!!!
print(set1)
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐