我在列表中有一些对象,这是一个对象类:
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 = 498
和obj.y2 = 502
是对,因为这些数字之间的差异小于10.有些对象没有对。所以我需要只有对的干净列表作为输出。
[(obj,obj), (obj,obj),...]
我想知道使用itertools但不能构造逻辑。有什么帮助吗?
答案 0 :(得分:0)
组合(' 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