Jame-G 发表于 2023-4-1 23:57:21

这个怎么理解{x:y for x in [1,2,3] for y in [4,5,6]}

{x:y for x in for y in }
为啥答案是这个?
{1: 6, 2: 6, 3: 6}

isdkz 发表于 2023-4-2 00:09:04

这个表达式是一个字典推导式,用于快速生成一个字典。它的结构是:{key_expression: value_expression for item in iterable}。

在这个例子中,x:y 是键值对,x 和 y 分别在列表 和 中取值。

字典的键是唯一的,因此当有重复的键出现时,会被新的值覆盖。

在这个例子中,x 会分别取值 1, 2, 3,而 y 会在每次 x 取值时都遍历整个列表 。这将产生以下键值对:

1:4
1:5
1:6
2:4
2:5
2:6
3:4
3:5
3:6

注意每个键(1,2,3)的最后一个值都是6。因为字典中的键是唯一的,所以之前的键值对会被后面的覆盖。因此,最后生成的字典为:

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

歌者文明清理员 发表于 2023-4-2 18:01:39

这是一个字典推导式,它的逻辑是在两个列表之间进行嵌套循环,对于列表1中的每个元素x,都与列表2中的所有元素y配对形成一个键值对{x:y}。因此,推导式生成了9个键值对:

键为1,值为4
键为1,值为5
键为1,值为6
键为2,值为4
键为2,值为5
键为2,值为6
键为3,值为4
键为3,值为5
键为3,值为6
由于每个键只能对应一个值,因此相同键的键值对将会被后面的覆盖掉。在这种情况下,最后三个键值对会覆盖前面的,因此最终结果为{1: 6, 2: 6, 3: 6}。

歌者文明清理员 发表于 2023-4-3 17:27:35

给个最佳答案呗
页: [1]
查看完整版本: 这个怎么理解{x:y for x in [1,2,3] for y in [4,5,6]}