Tom*_*Tom 5 python list-comprehension list
我想使用列表推导来避免编写附加到某些列表的for循环.但它可以使用返回多个值的函数吗?我希望这个(简化示例)代码能够工作......
def calc(i):
a = i * 2
b = i ** 2
return a, b
steps = [1,2,3,4,5]
ay, be = [calc(s) for s in steps]
Run Code Online (Sandbox Code Playgroud)
......但它没有:(
附加到每个列表的for循环有效:
def calc(i):
a = i * 2
b = i ** 2
return a, b
steps = [1,2,3,4,5]
ay, be = [],[]
for s in steps:
a, b = calc(s)
ay.append(a)
be.append(b)
Run Code Online (Sandbox Code Playgroud)
有更好的方法还是我坚持这个?
Ash*_*ary 11
使用zip有*:
>>> ay, by = zip(*(calc(x) for x in steps))
>>> ay
(2, 4, 6, 8, 10)
>>> by
(1, 4, 9, 16, 25)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4610 次 |
| 最近记录: |