这个主题考什么
- 用 get 安全读取可能不存在的键,而不是让程序崩溃。
- 更新、合并并遍历键、值或键值对。
- 识别哪些对象可以作为字典键。
常见错误
- 键可能不存在时仍使用 d[key]。先判断应该用 get 还是默认值。
- 在遍历字典时改变它的大小。应遍历键或键值对的副本。
- 用列表作为键。字典键必须可哈希。
样题
从完整题库中挑出的 10 道代表题。先自己作答,再展开答案。
-
1. 小明从奶茶菜单查价格:menu.get("果茶", "暂无")。如果「果茶」不在菜单里,返回?
显示答案
答案
B. "暂无"(键不存在时)解析: get(key, default) 在键存在时返回对应的值,不存在时返回默认值,且不会插入新键。所以菜单里没有水果茶就返回 'not available'。
-
2. 键缺失且没给默认值时,d.pop('a') 会怎样?
显示答案
答案
A. KeyError解析: pop 删除键并返回对应的值,但键缺失且没给默认值时会抛 KeyError;传第二个参数则改为返回它,两者差别很大。
-
3. 🧋 小明判断「珍珠奶茶」是否在菜单字典里,'key' in {'key':1} 的结果?
显示答案
答案
A. True解析: in 检查的是键,'key' 正是这个字典的键,表达式为 True;值 1 在这里不起作用,别用值来判断成员关系。
-
4. Python 3.7+ 的普通字典按什么顺序保存键?
显示答案
答案
A. 插入顺序解析: 从 Python 3.7 起,语言保证字典保持插入顺序,遍历就按加键的先后进行。要字母序得另外用 sorted()。
-
5. 小明判断「珍珠奶茶」是否在菜单字典 d 中:"珍珠奶茶" ___ d
显示答案
答案
in解析: in 运算符检查的是键,只有 'bubble tea' 作为键存在时才为 True;它不看值,也不做任何类型转换。
-
6. 🧋 小明从奶茶字典查价格,查不到返回默认值,安全获取字典值:d.___('key', '默认值')
显示答案
答案
get解析: get 先接键、再接兜底值,d.get('key', 'default') 不会抛异常。不传兜底值时返回 None。
-
7. 给菜单做一份独立副本。空里填哪个方法?
backup = menu.____()显示答案
答案
copy解析: copy() 返回浅拷贝,给 backup 加键不会影响 menu;但嵌套的值仍然共享,深结构要用 deepcopy。
-
8. get 和 setdefault 的区别在哪?输出什么?
d = {"a": 1} print(d.get("b", 0), d.setdefault("c", 2), d)显示答案
答案
0 2 {'a': 1, 'c': 2}解析: get('b', 0) 返回 0 但不添加 b;setdefault('c', 2) 返回 2 并把 c 插进去。于是依次打印 0、2 和 {'a': 1, 'c': 2}。
-
9. setdefault 设置不存在的 b 键,返回值是什么?
d = {"a": 1} print(d.setdefault("b", 2), d)显示答案
答案
2 {'a': 1, 'b': 2}解析: setdefault 在键存在时返回原值,不存在时插入默认值并返回它。这里 b 缺失,于是返回 2,d 里也多出 b。
-
10. `score('quirky')` 返回什么?
POINTS = { 'a': 1, 'b': 3, 'c': 3, 'd': 2, 'e': 1, 'f': 4, 'g': 2, 'h': 4, 'i': 1, 'j': 8, 'k': 5, 'l': 1, 'm': 3, 'n': 1, 'o': 1, 'p': 3, 'q': 10, 'r': 1, 's': 1, 't': 1, 'u': 1, 'v': 4, 'w': 4, 'x': 8, 'y': 4, 'z': 10 } def score(word): if not word.isalpha(): return 0 return sum(POINTS[letter] for letter in word.lower()) print(score('quirky'))显示答案
答案
22解析: q 10、u 1、i 1、r 1、k 5、y 4,相加得 22,所以 score('quirky') 返回 22。没有任何去重,重复字母会再算一次。
常见问题
get 和方括号读取有什么区别?
d[key] 在键不存在时抛出 KeyError;d.get(key) 返回 None,d.get(key, default) 返回你给的默认值。
字典会保留插入顺序吗?
当前 Python 版本把插入顺序作为语言行为保留,但除非顺序是需求的一部分,不要依赖它。
继续保持练习节奏。
完整题库会在这个浏览器里记住进度,支持按主题筛选,并包含每日一题和错题重练。