小甲鱼 发表于 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 小助理,如未能正确解答您的问题,请继续追问。

tuya4413 发表于 2026-8-21 13:55:06

@FishC 执行以下代码后,counter 的内容是?

counter = {}
counter.setdefault('hits', 0)
counter['hits'] += 1

A. {}
B. {'hits': 1}
C. {'hits': 0}
D. 会抛出 KeyError

FishC 发表于 2026-8-21 13:55:13

tuya4413 发表于 2026-08-21 13:55
@FishC 执行以下代码后,counter 的内容是?

count ...

答案是:B. {'hits': 1}

counter = {}
counter.setdefault('hits', 0)# 不存在 'hits',所以插入键并设为 0
counter['hits'] += 1         # 等价于 counter['hits'] = counter['hits'] + 1


因此最终 counter 的内容是 {'hits': 1}。

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

tuya4413 发表于 2026-8-21 13:55:54

@FishC 执行以下代码后,输出结果是什么?

sound = {'cat': 'meow', 'dog': 'woof', 'tiger': 'meow'}
inv = {v: k for k, v in sound.items()}
print(inv['meow'])

A. 'cat'
B. 'tiger'
C. 'meow'
D. 会抛出 KeyError

FishC 发表于 2026-8-21 13:56:02

tuya4413 发表于 2026-08-21 13:55
@FishC 执行以下代码后,输出结果是什么?

sound = ...

答案是:B. 'tiger'

原因如下:

字典中,'cat' 和 'tiger' 的值都是 'meow'。

在构建反转字典 inv 时,后出现的键会覆盖先出现的键。由于 'tiger' 在 'cat' 之后,所以 inv['meow'] 最终指向 'tiger'。

代码演示:


sound = {'cat': 'meow', 'dog': 'woof', 'tiger': 'meow'}
inv = {v: k for k, v in sound.items()}
# 实际结果是 {'meow': 'tiger', 'woof': 'dog'}
print(inv['meow'])# 输出 tiger


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