我有一组对象,它们的属性为“ coords”(两个整数的元组)和一个返回该元组的方法。另外,我还有一个元组坐标列表。我想将可在列表中找到其coords属性的对象添加到新列表中。
首先,我用一个简单的理解就尝试了这个:
coords_list = [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]
objects_with_matching_coords = [i for i in objects if i.get_coords() in coords_list]
但是似乎get_coords不满足in条件,即使它确实确实返回了两个整数的元组,就像在coords_list中一样。结果列表为空。
我尝试将其重写为for循环:
objects_with_matching_coords = []
for obj in objects:
if obj.get_coords() in coords_list :
objects_with_matching_coords.append(obj)
else:
continue
相同的结果,objects_with_matching_coords为空。in不会将列表中的元组视为项目吗?这是怎么回事?
您正在将obj与obj比较,您应该比较元组中的元素。请参考示例link