从map()返回不同的变量

时间:2014-02-24 11:28:33

标签: python map lambda

是否可以在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)

但它返回一个元组列表而不是我想要的两个列表。

所以,我的问题是,是否有任何有效的方法从地图函数返回两个列表?提前谢谢。

1 个答案:

答案 0 :(得分:1)

您需要先解压缩每个值:

b, c = [], []
for i, j in map(lambda x: x.func1(), list1):
    b.append(i)
    c.append(j)

也可能就在这里,但你的两种方法都缺少self