python - Find item in list by type -
i have list can contain several elements of different types. need check if in list there 1 or more elements of specific type , index.
l = [1, 2, 3, myobj, 4, 5] i can accomplish goal iterate on list , check type of each element:
for i, v in enumerate(l): if type(v) == mytype: homecoming is there more pythonic way accomplish same result?
you can utilize next , generator expression:
return next(i i, v in enumerate(l) if isinstance(v, mytype)): the advantage of solution is lazy current one: check many items necessary.
also, used isinstance(v, mytype) instead of type(v) == mytype because preferred method of typechecking in python. see pep 0008.
finally, should noted solution raise stopiteration exception if desired item not found. can grab try/except, or can specify default value return:
return next((i i, v in enumerate(l) if isinstance(v, mytype)), none): in case, none returned if nil found.
python list search types
No comments:
Post a Comment