Нет смысла создавать np.array
здесь, это только замедляет процесс.Если ваше беспокойство сводит ваши списки списков, itertools.chain.from_iterable
- это один из аккуратных способов добиться этого:
from itertools import chain
from timeit import timeit
a = [['Address', 'STREET', '123 N Main St'],
['Address', 'STREET', '100 N Main St']]
timeit(lambda: 'STREET' in np.array(a))
# 5.389413919008803
timeit(lambda: 'STREET' in chain.from_iterable(a))
# 0.29813046095659956
Для строчных букв используйте map
'street' in map(str.lower, chain.from_iterable(a))
# True
или выражение генератора,Это также может быть использовано для уплощения.
'street' in (y.lower() for x in a for y in x)
# True
Понимание списка (уплощение) работает точно так же, но здесь будет медленнее.(Практическое правило: если вы используете список только один раз, а затем отбрасываете его, выражение генератора является более экономичным.)
'street' in [y.lower() for x in a for y in x]
# True