Here is the getImgIds
from the pycocotools
:
pycocotools/coco.py:
def getImgIds(self, imgIds=[], catIds=[]):
'''
Get img ids that satisfy given filter conditions.
:param imgIds (int array) : get imgs for given ids
:param catIds (int array) : get imgs with all given cats
:return: ids (int array) : integer array of img ids
'''
imgIds = imgIds if _isArrayLike(imgIds) else [imgIds]
catIds = catIds if _isArrayLike(catIds) else [catIds]
if len(imgIds) == len(catIds) == 0:
ids = self.imgs.keys()
else:
ids = set(imgIds)
for i, catId in enumerate(catIds):
if i == 0 and len(ids) == 0:
ids = set(self.catToImgs[catId])
else:
ids &= set(self.catToImgs[catId])
return list(ids)
Here is the test code
for simulating
the value of ids &= set(self.catToImgs[catId])
:
fruits = set(['apple', 'banana', 'cherry'])
cars = set(['Ford', 'BMW', 'Volvo'])
fruits &= cars
print("fruits: len:{}, type: {}, values: {}".format(
len(fruits), type(fruits), fruits
))
Here is the result:
fruits: len:0, type: <class 'set'>, values: set()
I got a result of len = 0
.
How to understand the meaning of the above &=
operator for the set()
class?