通常我这样做:
a=[]
for x in range(5):
a.append(x)
print(a)
# [0, 1, 2, 3, 4]
然后我将循环放在列表中
a=[]
L=[a.append(x) for x in range(5)]
print(L)
# [None, None, None, None, None]
我不知道它有什么问题......
答案 0 :(得分:2)
此处的问题是,a.append(x)
是列表a
的一种方法,可以修改a
。它返回None
。
有趣的是你得到了这个:
a=[]
L=[a.append(x) for x in range(5)]
print(L)
# [None, None, None, None, None]
print(a)
# [0, 1, 2, 3, 4]
请注意a
已更新。但是,建议不要使用这样的列表推导来解决副作用,因为代码变得非常难以理解。
如果您想使用列表推导创建L
,您应该这样做:
L = [x for x in range(5)]
print(L)
# [0, 1, 2, 3, 4]
最好的代码可能只是
L = list(range(5))
print(L)
# [0, 1, 2, 3, 4]
答案 1 :(得分:0)
那是因为x被添加到a而不是L.
BaseGameUtils