First create a set of all your values ββinside the dol structure:
from itertools import chain dol_values = set(chain.from_iterable(dol.itervalues()))
Membership testing is now effective and you can use list comprehension:
[tup + (True,) if tup[0] in dol_values else tup for tup in lot]
Demo:
>>> from itertools import chain >>> dol_values = set(chain.from_iterable(dol.itervalues())) >>> dol_values set(['Item 3', 'Item 2', 'Item 1', 'Item 21', 'Item 4']) >>> [tup + (True,) if tup[0] in dol_values else tup for tup in lot] [('Item 1', 43, True), ('Item 4', 82, True), ('Item 12', 33), ('Item 10', 21)]
source share