是否可以在python(2.7)中使用map()函数返回多个变量?我尝试过做这样的事情,
class obj1:
def __init__(self,var):
self.var = var
def func1(self,a):
b = [a**2 + y + self.var for y in range(4)]
c = [a**3 + y + self.var for y in range(4)]
return b, c
list1 = [obj1(x) for x in range(10)]
b,c = map(lambda x: x.func1(), list1)
但是它说它有太多值来解压缩。所以我试着这样做:
d = map(lambda x: x.func1(), list1)
但它返回一个元组列表而不是我想要的两个列表。
所以,我的问题是,是否有任何有效的方法从地图函数返回两个列表?提前谢谢。
答案 0 :(得分:1)
您需要先解压缩每个值:
b, c = [], []
for i, j in map(lambda x: x.func1(), list1):
b.append(i)
c.append(j)
也可能就在这里,但你的两种方法都缺少self
。