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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…