compare two lists of files, ignoring file extension in one list

后端 未结 4 1491
我在风中等你
我在风中等你 2021-01-20 21:59

I have two lists

list1 = [\'image1.png\', \'image2.png\', \'image3.png\', \'image3.png\']
list2 = [\'image1.pdf\', \'image2.eps\', \'image3.ps\']

4条回答
  •  执笔经年
    2021-01-20 22:10

    You can try using set to get uniques and a list comprehension to do the comparison:

    from os.path import splitext
    
    list1 = ['image1.png', 'image2.png', 'image3.png', 'image3.png']
    list2 = ['image1.pdf', 'image2.eps', 'image3.ps']
    reference = set([splittext(item)[0] for item in list2]) #  Strip the extension
    outcome = set([item for item in list1 if splittext(item)[0] in reference]) #  compare
    print(outcome)
    >>> 
    {'image3.png', 'image2.png', 'image1.png'}
    

提交回复
热议问题