使用python的map将项目映射到多个项目

时间:2017-01-02 10:51:42

标签: python dictionary

以下方法将表示2D空间中矩形的元组列表转换为相应的中心点:

def centers(xywh):
    return map(lambda xywh: [xywh[0]+xywh[2]/2.0,xywh[1]+xywh[3]/2.0], xywh)

为了挑战自己我想做同样的事情,除了我将每个矩形映射到它的4个角落。类似的东西:

def corners(xywh):
    return map(lambda xywh: [[xywh[0],xywh[1]],[xywh[0],xywh[1]+xywh[3]],[xywh[0]+xywh[2],xywh[1]+xywh[3]],[xywh[0]+xywh[2],xywh[1]]]  , xywh)

现在的问题是我试图将矩形映射到点列表,而不是列出“4点列表”。我该怎么做?

1 个答案:

答案 0 :(得分:0)

解决方案是将4点列表的列表减少到一个点列表

def corners(xywh):
    t=map(lambda xywh: [[xywh[0],xywh[1]],[xywh[0],xywh[1]+xywh[3]],[xywh[0]+xywh[2],xywh[1]+xywh[3]],[xywh[0]+xywh[2],xywh[1]]]  , xywh)
    return reduce(lambda a,b: a+b, t)