我想从一个列表中得到一个子集,通过检查它的键是否在另一个列表中。你知道吗
class object:
def __init__(self, key, x, y):
self.key = key
self.x = x
self.y = y
o1 = object(key=300, x=18.0, y=100.0)
o2 = object(key=301, x=12.0, y=1032.0)
x1 = object(key=100, x=28.0, y=2300.0)
x2 = object(key=101, x=43.0, y=332.0)
...
myobj = [o1, o2, o3]
objects = [x1, x2, x3, x4, x5, x6, ... ]
假设o2.key == x3.key
和o3.key == x6.key
,则得到[o2, o3]
有没有简单的方法?你知道吗
你可以使用列表理解来得到结果
编辑:
这将返回一个list列表,它不是所需的anwser操作,它需要一个额外的
reduce
来确定结果您可以使用表格的列表:
尽管您最好将数据调整到字典中,因为查找在更大的数据集上执行得更好。你知道吗
你能给对象类型添加^{} 和
__eq__()
方法吗?如果是这样,可以直接使用集合:即使不能使用
__hash__()
,也可以使用以下键:更新:根据更新的问题。。。你知道吗
相关问题 更多 >
编程相关推荐