我有一个返回两个值的函数,我想使用列表理解来填充两个列表.
def f(x):
return 2*x,x*x
x = range(3)
xlist, ylist = [f(value) for value in x]
EDITS from answers below:
xtuple, ytuple = zip(*[f(value) for value in x])
xlist, ylist = map(list,zip(*[f(value) for value in x]))
预期回报率应为:
xlist = [0, 2, 4]
ylist = [0, 1, 4]
我的问题归结为:
目前我得到了一个元组列表,虽然这是合理的,但我最终需要两个独立的列表.目前,我可以有1个占位符(元组列表)变量和3个总理解.但我想知道是否有一个干净的方法来做这件事,作为单一列表理解.
值得注意的是:在实际代码中,我的两个返回是相关的,所以我不能简单地将函数拆分为两个.