Python: Filter for Values where List A is Contained within List B

Viewed 20

I have a list B:

pklFilenamesList = ['path\202206_DATASET_STACK_.pkl', 'path\202206_DATASET_OVER_.pkl',  'path\202206_DATASET_FLOW_.pkl']

I have a list A:

listing = ['OVER','FLOW']

Attempted filter:

pickle= [x for x in pklFilenamesList if x[0] in listing]

which is returning a blank list []

Does anyone know how to filter for values from my List B contained in A?

Expected output:

pickle = ['path\202206_DATASET_OVER_.pkl',  'path\202206_DATASET_FLOW_.pkl']

any help is appreciated.

1 Answers

Need to check the value against every value on listing:

pickle = [x for x in pklFilenamesList if any(e in x for e in listing)]

print(pickle)

Result:

['path\x82206_DATASET_OVER_.pkl', 'path\x82206_DATASET_FLOW_.pkl']
Related