Attempting to find the index of strings in two lists. Having a problem because the strings are similar.
directories = ['C:/Desktop/5SvF9yM6ldXGRpBz1.csv',
'C:/Desktop/5SvF9yM6ldXGRpBz11.csv',
'C:/Desktop/5SvF9yM6ldXGRpBz12.csv']
barcodes = ['5SvF9yM6ldXGRpBz1',
'5SvF9yM6ldXGRpBz11',
'5SvF9yM6ldXGRpBz12']
The output below. How do I get the first barcode '5SvF9yM6ldXGRpBz1' = [0] instead of [0,1,2]
5SvF9yM6ldXGRpBz1
[0, 1, 2]
5SvF9yM6ldXGRpBz11
[1]
5SvF9yM6ldXGRpBz12
[2]
You should consider the following
from os.path import basename, splitext
[[i for k in barcodes if k==splitext(basename(j))[0]] for i,j in enumerate(directories)]
[[0], [1], [2]]
or you can use regular expression:
import re
[[i for k in barcodes if re.sub('.*/(\w+).*','\\1',j)==k] for i,j in enumerate(directories)]
[[0], [1], [2]]
[[i for k in barcodes if re.sub('.*/|\\..*','',j)==k] for i,j in enumerate(directories)]
[[0], [1], [2]]