使用单行 for-loop python 追加到空列表
Append to an empty list using a single line for-loop python
我正在尝试使用单行 for 循环将生成器中的数字附加到空列表,但它 returns None
。我知道可以使用带有 2 行的 for 循环来完成,但我想知道我遗漏了什么。即
>>> [].append(i) for i in range(10)
[None, None, None, None, None, None, None, None, None, None]
我希望在一行中创建这个:
>>> [].append(i) for i in range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
谢谢。
写一个正确的理解,没有附加。
>>> [i for i in range(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(i for i in range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
你也可以只转换一个可迭代的范围:
list(range(10))
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
同样适用于 numpy 用户:
np.arange(10)
>>> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
或者你可以使用 linspace 如果它对你来说更容易理解 (linspace(from,to,pieces)) :
np.linspace(0,9,10)
>>> array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
添加对发生的事情的解释,
追加没有 return 任何东西,
y = []
x = [y.append(i) for i in range(10)]
print(x)
print(y)
生产
[None, None, None, None, None, None, None, None, None, None]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[Program finished]
y = []
[y.append(i) 对于 i 在范围 (10) 内]
打印(y)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
我正在尝试使用单行 for 循环将生成器中的数字附加到空列表,但它 returns None
。我知道可以使用带有 2 行的 for 循环来完成,但我想知道我遗漏了什么。即
>>> [].append(i) for i in range(10)
[None, None, None, None, None, None, None, None, None, None]
我希望在一行中创建这个:
>>> [].append(i) for i in range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
谢谢。
写一个正确的理解,没有附加。
>>> [i for i in range(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(i for i in range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
你也可以只转换一个可迭代的范围:
list(range(10))
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
同样适用于 numpy 用户:
np.arange(10)
>>> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
或者你可以使用 linspace 如果它对你来说更容易理解 (linspace(from,to,pieces)) :
np.linspace(0,9,10)
>>> array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
添加对发生的事情的解释, 追加没有 return 任何东西,
y = []
x = [y.append(i) for i in range(10)]
print(x)
print(y)
生产
[None, None, None, None, None, None, None, None, None, None]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[Program finished]
y = []
[y.append(i) 对于 i 在范围 (10) 内]
打印(y)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]