Check if element exists in tuple of tuples

You are looking for any():

if any('apple' in code for code in CODES):
    ...

Combined with a simple generator expression, this does the task. The generator expression takes each tuple and yields True if it is contains 'apple'. any() then returns True when the first item it requests returns True (otherwise, False). Hence this does what you want. It also reads nicely – if any of the tuples contain 'apple'.

If you are doing this a massive number of times and need performance, then it might be worth making a set of all of the values to allow you to do this very quickly:

cache = set(itertools.chain.from_iterable(CODES)))

Naturally, constructing this will be slow and use memory, so it wouldn’t be a good idea unless you need a lot of performance and will be doing a lot of membership checks.

Leave a Comment