python中对象包含几个部分_python中包含对象类型的两个列表的交集
如果順序無關緊要,請使用set.intersection:A = [(1.1,2.2),(3.3,4.4),(5.5,6.6)]
B = [(1.1,2.2),(7.7,8.8),(3.3,4.4)]
print(set(A).intersection(B))
set([(3.3, 4.4), (1.1, 2.2)])
或者將B設為集合,并在a上迭代保持公共元素:
^{pr2}$
如果要查找具有相同屬性值的對象:A = [Point(1.1,2.2),Point(3.3,4.4),Point(5.5,6.6)]
B = [Point(1.1,2.2),Point(7.7,8.8),Point(3.3,4.4)]
st = set((p.a,p.b) for p in B)
print([p for p in A if (p.a,p.b) in st])
或者在類中創建哈希方法:class Point(object):
def __init__(self, a_, b_):
self.a = a_
self.b = b_
def __hash__(self):
return hash((self.a, self.b))
def __eq__(self, other):
return self.a, self.b == other.a,other.b
def __ne__(self, other):
return not self.__eq__(other)
A = [Point(1.1,2.2),Point(3.3,4.4),Point(5.5,6.6)]
B = [Point(1.1,2.2),Point(7.7,8.8),Point(3.3,4.4)]
print(set(A).intersection(B))
總結
以上是生活随笔為你收集整理的python中对象包含几个部分_python中包含对象类型的两个列表的交集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python36中文手册_python3
- 下一篇: websocket python爬虫_p