I have two lists
list1 = [\'image1.png\', \'image2.png\', \'image3.png\', \'image3.png\']
list2 = [\'image1.pdf\', \'image2.eps\', \'image3.ps\']
from os.path import splitext
list1 = ['image1.png', 'image2.png', 'image3.png', 'image3.png', 'image4.png', 'image3.jpg']
list2 = ['image1.pdf', 'image2.eps', 'image3.ps', 'image5.doc']
# Create a lookup set of the document names sans extensions.
documents = set([splitext(filename)[0] for filename in list2])
# Compare each stripped filename in list1 to the list of stripped document filenames.
matches = [filename for filename in set(list1) if splitext(filename)[0] in documents]
print matches
Output:
['image1.png', 'image2.png', 'image3.png', 'image3.jpg']
Note that it would have to be adapted for files with multiple extensions like .tar.gz
if needed (filename.partition(".")[0]
would do the trick). But that would mean that dots cannot be put anywhere in the filename because the first dot now delimits the extension.