使用地图功能对嵌套元组进行操作

时间:2019-07-18 09:00:08

标签: python-3.x list nested tuples

rect = [(2,4),(3,5),(4,3),(5,5),(6,2),(3,9)] 

areas=[] 

def area(r):                         
     for i in rect:
        a = i[0]
        b = i[1]
        c = a*b
        areas.append(c)                
     return c

area(rect)                             
print(areas)                           

以上功能运行良好。

它打印-[8, 15, 12, 25, 12, 27]

但是当我使用Map时:

print(list(map(area, rect)) 

它打印-[27, 27, 27, 27, 27]

如何使用Map函数正确获得以上结果?

1 个答案:

答案 0 :(得分:0)

地图在area列表中的每个元素上调用rect,因此

map(area, rect)

将导致:

[area(rect[0]),area(rect[1]),area(rect[2]),... ] = [27,27,...]

在python中,最好使用列表理解:

out = [a*b for a,b in rect]