【发布时间】:2020-03-31 18:11:39
【问题描述】:
我有 2 个集合,每个集合包含以下类的对象:
class pointInfo:
x = 0
y = 0
steps = 0
我想找到这两组的交集,但只在 x 和 y 值上。 类似:
def findIntersections(pointInfoSet1, pointInfoSetwire2):
return [pointInfo for pointInfo in pointInfoSet1 if pointInfo.x, pointInfo.y in pointInfoSet2]
我知道如果你在 python 中有 2 个集合,你可以只做 set1.intersection(set2),但在这种情况下这不起作用,因为我只想找到对象属性的某个子集是相同的,而不是相同的对象。提前致谢!
【问题讨论】:
-
pointInfo对象在其x和y上是否更普遍?您可以编写__eq__和__hash__方法来反映这一点,然后设置交集将正常工作。 -
是的,基本上我有 2 条线,它们是一组点,我试图找到与 0,0 的距离最小的交点,同时遵循电线路线。所以 x 和 y 坐标有大约 30 个交点,但步数永远不相等。所以我只是想根据 x 和 y 值进行比较