清理清单并拆分成对

时间:2015-11-02 23:00:00

标签: python python-2.7

我在列表中有一些对象,这是一个对象类:

class MyData:
    def __init__(self, name, x1, y1, x2, y2): 
        self.name = name
        self.x1 = x1
        self.y1 = y1
        self.x2 = x2
        self.y2 = y2

列表中的某些对象有一对obj.y2,但有一个容差t = 10。所以obj.y2 = 498obj.y2 = 502是对,因为这些数字之间的差异小于10.有些对象没有对。所以我需要只有对的干净列表作为输出。

[(obj,obj), (obj,obj),...]我想知道使用itertools但不能构造逻辑。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

itertools.combinations怎么样?

  

组合(' ABCD',2) - > AB AC AD BC BD CD

在你的情况下像:

for x in itertools.combinations(yourlist, 2):
    // Pseudocode: your compare logic, something like if absolute(y2 - y1) < 10: 
    // then add to a different pair_only_list