Создать список из другого списка по условию

Имеются два списка:

l1=['0023', '0024', '0025']
l2=['IMG_0023_475_30.tif', 'IMG_0023_550_20.tif', 'IMG_0023_670_30.tif', 
'IMG_0023_715_10.tif', 'IMG_0023_840_20.tif', 'IMG_0024_475_30.tif', 
'IMG_0024_550_20.tif', 'IMG_0024_670_30.tif', 'IMG_0024_715_10.tif', 
'IMG_0024_840_20.tif', 'IMG_0025_475_30.tif', 'IMG_0025_550_20.tif', 
'IMG_0025_670_30.tif', 'IMG_0025_715_10.tif', 'IMG_0025_840_20.tif']

Далее что должно происходить:

берется элемент из первого списка (0023) во втором списке берутся файлы, где есть 0023 и помещаются в список. В конечном итоге должен получится список списков:

[['IMG_0023_475_30.tif', 'IMG_0023_550_20.tif', 'IMG_0023_670_30.tif', 
'IMG_0023_715_10.tif', 'IMG_0023_840_20.tif'],
['IMG_0024_475_30.tif', 'IMG_0024_550_20.tif', 
 'IMG_0024_670_30.tif','IMG_0024_715_10.tif', 'IMG_0024_840_20.tif'],
['IMG_0025_475_30.tif', 'IMG_0025_550_20.tif', 
'IMG_0025_670_30.tif', 'IMG_0025_715_10.tif', 'IMG_0025_840_20.tif']]

Как это сделать, товарищи??


Ответы (1 шт):

Автор решения: Zhihar

алгоритм

  1. проходите по списку l1
  2. проходите внутри 1) по списку l2
  3. ищете подстроку l1 в строке l2
  4. если находите - помещаете элемент l2 в новый список
  5. проверяете выходной список на дубликаты и удаляете их (или сразу множество set вместо list используете)
→ Ссылка