Python 字典 dict.fromkeys() 函数 超详细、零基础详解
文章目录
- Python 字典 dict.fromkeys() 函数 超详细、零基础详解
-
- 1. 它是什么?
-
- 作用:
- 2. 语法(固定格式)
-
- 两个参数:
-
- 1.序列(必须)
- 2.默认值(可选)
- 3. 最核心特点(一定要记)
- 4. 超级简单例子(一看就懂)
-
- 例子 1:只传列表,value 默认 None
- 例子 2:指定默认值
- 例子 3:用字符串当序列
- 5. 为什么它能用来列表去重?
- 6. 超级重要的坑(新手必看)
- 7. 一句话总结
我用最简单的话 + 超多例子把这个函数彻底讲清楚,保证你一看就会、永远记住!
1. 它是什么?
fromkeys() 是 Python 字典(dict)自带的创建新字典的函数。
作用:
用一个列表 / 集合 / 元组里的元素当 字典的键(key),自动创建一个新字典。
2. 语法(固定格式)
字典变量 = dict.fromkeys(序列, 默认值)
两个参数:
1.序列(必须)
可以是:列表、元组、字符串、集合 里面的每一个元素都会变成字典的 key
2.默认值(可选)
所有 key 对应的 value 都用这个值 不写的话,默认是 None
3. 最核心特点(一定要记)
1.key 不能重复 → 自动去重 2.Python 3.7+ 字典会保持顺序 3.所有 key 共用同一个 value
4. 超级简单例子(一看就懂)
例子 1:只传列表,value 默认 None
list1 = [11, 22, 33, 22, 11]
d = dict.fromkeys(list1)
print(d)
结果:
{11: None, 22: None, 33: None}
- 重复的 11、22 自动去掉
- 顺序保持不变
- 值都是默认的 None
例子 2:指定默认值
list1 = [11,22,33]
d = dict.fromkeys(list1, 0)
print(d)
结果:
{11: 0, 22: 0, 33: 0}
所有 key 的 value 都变成 0
例子 3:用字符串当序列
d = dict.fromkeys("abc")
print(d)
结果:
{'a': None, 'b': None, 'c': None}
5. 为什么它能用来列表去重?
因为:
- 列表 → 传给 fromkeys → 变成字典 key
- key 不能重复 → 自动去重
- 再用 list() 把 key 取出来 → 得到去重后的列表
list1 = [11,22,33,22,11,55]
new_list = list(dict.fromkeys(list1))
print(new_list)
结果:
[11,22,33,55]
6. 超级重要的坑(新手必看)
不要给可变类型(列表、字典)当默认值! 例子(错误示范):
d = dict.fromkeys([1,2,3], [])
d[1].append(666)
print(d)
你以为只会改 key=1,结果:
{1: [666], 2: [666], 3: [666]}
所有 key 用的是同一个列表!
7. 一句话总结
dict.fromkeys(序列, 默认值) = 用序列里的元素当 key,创建一个新字典,自动去重,保持顺序


