小甲鱼 发表于 2026-1-26 03:33:20

本主题需向作者支付 5 鱼币 才能浏览 购买主题

zzj375100270 发表于 2026-1-31 16:13:46

@FishC 下面代码执行后,字典 d 的内容是什么?

d = {x: y for x in for y in }

A. {1: 10, 2: 10}
B. {1: 20, 2: 20}
C. {1: , 2: }
D. 报错

FishC 发表于 2026-1-31 16:14:15

zzj375100270 发表于 2026-01-31 16:13
@FishC 下面代码执行后,字典 d 的内容是什么?

d...

字典推导式 d = {x: y for x in for y in } 的执行过程如下:

外循环 for x in 和内循环 for y in 会生成所有组合:

[*]x=1, y=10 → 键值对 1:10
[*]x=1, y=20 → 键值对 1:20
[*]x=2, y=10 → 键值对 2:10
[*]x=2, y=20 → 键值对 2:20


由于字典键必须是唯一的,后出现的值会覆盖先前的值。因此对于同一个键 x,最终保留的是最后一次内循环中 y 的值。具体来说:

[*]键 1 最后对应的 y 是 20
[*]键 2 最后对应的 y 也是 20


所以最终字典 d 的内容为:{1: 20, 2: 20}。

正确答案是 B。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

haly 发表于 2026-3-27 06:26:48

@FishC 执行以下代码后,变量 x 的值是?

cache = {'token': 'abc'}
x = cache.setdefault('token', 'new')

A. 'abc'
B. 'new'
C. None
D. 会抛出 KeyError

FishC 发表于 2026-3-27 06:27:12

haly 发表于 2026-03-27 06:26
@FishC 执行以下代码后,变量 x 的值是?

cache =...

执行以下代码后,变量 x 的值是?

cache = {'token': 'abc'}
x = cache.setdefault('token', 'new')

setdefault(key, default) 方法的作用是:如果键 key 存在于字典中,则返回它的值;如果不存在,则插入该键并设置值为 default,然后返回 default。

在给定的代码中,字典 cache 已经包含键 'token',其值为 'abc'。因此,调用 cache.setdefault('token', 'new') 会返回已存在的值 'abc',并且字典保持不变。所以,变量 x 的值是 'abc'。

因此,正确答案是 A. 'abc'。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 第038讲:字典(下)