Сначала я бы построил set
лет для времени поиска O (1). 1
>>> A = ['dataFile1999', 'dataFile2000', 'dataFile2001', 'dataFile2002']
>>> B = ['2000', '2001']
>>>
>>> years = set(B)
Теперь оставьте только элементы A
, заканчивающиеся элементом years
.
>>> [file for file in A if file[-4:] in years]
>>> ['dataFile2000', 'dataFile2001']
1 Если у вас очень маленькие списки (два элемента, безусловно, соответствуют), сохраните списки. Наборы имеют O (1) поиск, но хеширование по-прежнему приводит к накладным расходам.