ydwb 发表于 2025-7-26 21:42:35

小测试

def my_func():
    my_dict = {1: "Java", 2.0: "Python", 2: "C++"}
    return my_dict

print(my_func())

答案是: a.Java
               b.Python
             c.C++
               d.Error

FishC 发表于 2025-7-26 21:44:38

在Python中,字典的键必须是唯一的。当键的值相等时(即使类型不同),后出现的键值对会覆盖之前的。在代码中:

- 键 `2.0`(浮点数)和 `2`(整数)在数值上相等,因此它们被视为同一个键
- 后出现的 `2: "C++"` 会覆盖 `2.0: "Python"`
- 最终字典为 `{1: 'Java', 2.0: 'C++'}`

运行结果:

{1: 'Java', 2.0: 'C++'}


因此:
- 键 `1` 对应 'Java'(选项a)
- 键 `2.0` 或 `2` 对应 'C++'(选项c)
- 无错误(选项d错误)

正确答案是 c. C++,因为题目关注的键 `2` 最终映射到 'C++'。

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

每一次信任 发表于 2025-7-26 21:54:19

FishC 发表于 2025-7-26 21:44
在Python中,字典的键必须是唯一的。当键的值相等时(即使类型不同),后出现的键值对会覆盖之前的。在代码 ...

{:10_297:}

FishC 发表于 2025-7-26 21:56:19

每一次信任 发表于 2025-07-26 21:54
FishC 发表于 2025-7-26 21:44
在Python中,字典的键 ...

哈哈,这个小测试很有意思!让我们一步步分析代码:


def my_func():
    my_dict = {1: "Java", 2.0: "Python", 2: "C++"}# 注意这里有两个"2"
    return my_dict

print(my_func())


关键点:
1. Python字典要求键必须唯一
2. 虽然 2.0(浮点数)和 2(整数)类型不同,但它们的值相等(2.0 == 2 为 True)
3. 后出现的键值对会覆盖先出现的

实际执行过程:
- 先存储 1: "Java"
- 再存储 2.0: "Python"
- 最后存储 2: "C++" 时会覆盖 2.0 的值

最终输出结果:
{1: 'Java', 2.0: 'C++'}

正确答案:c. C++
解释:
- 键 1 对应 "Java"(选项a)
- 键 2 或 2.0 最终对应 "C++"(选项c)
- 没有报错(选项d错误)

有趣的事实:用整数 2 或浮点数 2.0 都能访问到 "C++":

d = my_func()
print(d)   # 输出 C++
print(d)   # 输出 C++


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

某一个“天” 发表于 2025-7-26 23:18:01

C,有意思
def my_func():
    my_dict = {1: "Java", 2.00: "Python", 2: "C++",True+True:'bf',False+3-1-0.0:'fucx'}
    return my_dict

print(my_func())

阿奇_o 发表于 2025-7-27 09:04:28

嗯,有点意思,我总结一下:Python字典dict 的创建或更新修改:
    如果遇到 “重复键”(等值==判断是否重复),保留最先出现的键,而其对应的值 则采用最后出现的值(覆盖更新)。

简记:    键重复==?保留最先的;键值?覆盖更新(用最后的)。

王昊扬 发表于 2025-7-27 09:11:02

可以可以

sfqxx 发表于 2025-7-27 11:35:22

本帖最后由 sfqxx 于 2025-7-28 12:26 编辑

C.

尉尉的可乐 发表于 2025-7-27 16:33:41

C,B盖掉了

星陨落石 发表于 2025-7-27 17:14:27

c

236916 发表于 2025-7-27 17:47:33

C

gpa5031 发表于 2025-7-27 21:22:34

C 是这个答案吗

gainer 发表于 2025-7-27 21:34:18

本帖最后由 gainer 于 2025-7-27 21:35 编辑

print(my_func())
{1: 'Java', 2.0: 'C++'}


这么好玩吗?
页: [1]
查看完整版本: 小测试