ccf520gdl 发表于 2023-2-15 22:56:18

关于列表推导式的问题

情况一:>>> y = [[],[],[],[],[]]
             >>> y = .append(i) for i in range(5)]
             >>> y
            

情况二:>>> y = [[],[],[],[],[]]
            >>> for i in range(5):
                      y.append(i)       
            >>> y
            [, , , , ]

为什么以上两种结果不一样

isdkz 发表于 2023-2-15 23:01:59

因为 append 的返回值是 None,所以 y = .append(i) for i in range(5)] 得到的 y 所有元素都为 None

想要跟情况二得到一样的结果应该是这样:

>>> y = [[],[],[],[],[]]
>>> .append(i) for i in range(5)]

>>> y
[, , , , ]
>>>

chinajz 发表于 2023-2-16 00:11:09

本帖最后由 chinajz 于 2023-2-16 08:25 编辑

x= [[],[],[],[],[]]
y= .append(i) for i in range(5)]
print(x,":",y)
x= [[],[],[],[],[]]
for i in range(5):
   y = x.append(i)
print(x,":",y)

运行结果两者一样:
[, , , , ] :
[, , , , ] :

小甲鱼的二师兄 发表于 2023-2-16 01:35:03

isdkz 发表于 2023-2-15 23:01
因为 append 的返回值是 None,所以 y = 得到的 y 所有元素都为 None

...

厉害了~
页: [1]
查看完整版本: 关于列表推导式的问题