gpt4 book ai didi

python - Python中的数组解构

转载 作者:行者123 更新时间:2023-12-04 01:44:18 28 4
gpt4 key购买 nike

我希望制作 vals在最后一行更清楚。

import rx
from rx import operators as op

light_stream = rx.range(1, 10).pipe(
op.with_latest_from(irradiance_stream),
op.map(lambda vals: print(vals[0], vals[1]))) # light, irradiance

有没有像这样的数组解构
op.map(lambda [light, irradiance]: print(light_intensity, irradiance))) # fake

或其他使代码清晰的方法?谢谢

最佳答案

Python 曾经允许解包函数签名中的可迭代参数,这似乎是您想要的 lambda功能。该特性在 Python 3 中被删除,原因在 PEP 3113 中列出。 .

它被删除的主要原因是它有点扰乱了自省(introspection),因为没有好的方法来命名已解包的复合参数。如果您采用普通参数(在普通函数中,而不是单行 lambda),则可以通过在单独的行上手动解包来获得相同的结果(不会弄乱原始参数名称):

# def foo(a, (b, c), d):  # this used to be a legal function definition
def foo(a, bc, d): # but now you must leave the two-valued argument packed up
b, c = bc # and explicitly unpack it yourself instead
...

其他可能做你想做的事情是在调用函数时解包值。在您的示例中,您可以调用 print(*vals) ,以及 *告诉 Python 解压可迭代的 vals作为 print 的单独参数.如果 vals总是有两个值,它将与您当前的代码完全相同。

关于python - Python中的数组解构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55940225/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com