请问这个语句为何是这个结果

wasabi
──╥╨<(@ 03月25日 字数 134

{ x: y for x in [1, 2, 3] for y in [4, 5, 6]}

上面语句的结果为何是{1: 6, 2: 6, 3: 6}  ?

这是涉及PYTHON中的哪个知识点呢?

恳请指点,感谢!

Python Python的自由天空
6 个回复
javaboy
喝了咖啡就话多-_-; 03月25日

for y in 456

for x in 123

result[x] = y

【 在 wasabi (──╥╨<(@) 的大作中提到: 】

: { x: y for x in [1, 2, 3] for y in [4, 5, 6]}

: 上面语句的结果为何是{1: 6, 2: 6, 3: 6}  ?

: 这是涉及PYTHON中的哪个知识点呢?

: ...................

xuanqing
玄清|黑白猫熊@静若处子动如光 03月25日

我猜你是想

{x: y for x, y in zip([1,2,3], [4,5,6])}

【 在 wasabi (──╥╨<(@) 的大作中提到: 】

: { x: y for x in [1, 2, 3] for y in [4, 5, 6]}

: 上面语句的结果为何是{1: 6, 2: 6, 3: 6}  ?

: 这是涉及PYTHON中的哪个知识点呢?

: ...................

lokta
部落 03月25日

我一般直接写

dict(zip([1,2,3],[4,5,6]))

【 在 xuanqing (玄清|黑白猫熊@静若处子动如光) 的大作中提到: 】

: 我猜你是想

: {x: y for x, y in zip([1,2,3], [4,5,6])}

xuanqing
玄清|黑白猫熊@静若处子动如光 03月25日

好简洁

【 在 lokta (部落) 的大作中提到: 】

: 我一般直接写

: dict(zip([1,2,3],[4,5,6]))

nxlhero
nxlhero 03月25日

相当于

d = {}

for x in [1,2,3]:

for y in [4,5,6]:

d[x] = y

也就是{1:4,1:5,1:6,2:4,2:5,2:6,3:4,3:5,3:6}

但是,同样的key会被后边的覆盖,所以就是

{1:6,2:6,3:6}

可以参考这个

https://blog.51cto.com/nxlhero/2480778

【 在 wasabi 的大作中提到: 】

: { x: y for x in [1, 2, 3] for y in [4, 5, 6]}

: 上面语句的结果为何是{1: 6, 2: 6, 3: 6}  ?

: 这是涉及PYTHON中的哪个知识点呢?

: ...................

one4all4one
one4all4one 03月25日

就是个双重循环,但是dict的key是唯一的,后面使用相同的key会覆盖已有值,所以最后只有1,2,3对6留下了

【 在 wasabi 的大作中提到: 】

: { x: y for x in [1, 2, 3] for y in [4, 5, 6]}

: 上面语句的结果为何是{1: 6, 2: 6, 3: 6}  ?

: 这是涉及PYTHON中的哪个知识点呢?

: ...................