刘pyh 发表于 2024-7-30 10:47:23

字典推导式的结果怎么是这样的

d = {x:y for x in for y in }
d
{1: 6, 3: 6, 5: 6}
为什么不是
{1:2,3:4,5:6}?

wp231957 发表于 2024-7-30 10:52:14

这是字典的一个特性它会覆盖

smallwh 发表于 2024-7-30 14:54:27

当 x=1 时
y 先后取 2,4,6:
d = 2
d = 4 #d = 2被覆盖
d = 6 #d = 4再次被覆盖
最终只剩下d = 6

当 x=3 时
y 先后取 2,4,6:
d = 2
d = 4 #d = 2被覆盖
d = 6 #d = 4再次被覆盖
最终只剩下d = 6

当 x=5 时
y 先后取 2,4,6:
d = 2
d = 4 #d = 2被覆盖
d = 6 #d = 4再次被覆盖
最终只剩下d = 6

某一个“天” 发表于 2024-7-30 15:57:50

拆成循环:
# d = {x:y for x in for y in }
d = {}
for x in :
    for y in :
      d = y
print(d)

William01 发表于 2024-7-31 10:09:50

wp231957 发表于 2024-7-30 10:52
这是字典的一个特性它会覆盖

覆盖的意义是什么?

wp231957 发表于 2024-7-31 10:12:44

William01 发表于 2024-7-31 10:09
覆盖的意义是什么?

就是当你给一个已经存在的KEY -VALUE赋值时,只要值是合法的,那么它就不会报错,会直接更新字典的key
值为新的value值

William01 发表于 2024-7-31 10:20:04

wp231957 发表于 2024-7-31 10:12
就是当你给一个已经存在的KEY -VALUE赋值时,只要值是合法的,那么它就不会报错,会直接更新字典的key
...

好的,谢谢!
页: [1]
查看完整版本: 字典推导式的结果怎么是这样的