mar*_*s34 5 python generator range
我想用生成器重写这部分代码:
basic = []
for x in range(0,11):
basic.append(x**2)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点 ?试过:
basic.append(x**2 for x in range(0,11))
Run Code Online (Sandbox Code Playgroud)
但它x**2部分引发了语法错误.
你误会了; 你的代码不会产生语法错误,它只是做错了:
>>> basic = []
>>> basic.append(x**2 for x in range(0,11))
>>> basic
[<generator object <genexpr> at 0x01E9AD78>]
>>>
Run Code Online (Sandbox Code Playgroud)
如果必须使用发电机:
>>> basic = list(x**2 for x in range(0,11))
>>> basic
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>>
Run Code Online (Sandbox Code Playgroud)
使用列表理解更简单:
>>> basic = [x**2 for x in range(0,11)]
>>> basic
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20064 次 |
| 最近记录: |