如何根据元素中的重复子字符串删除字符串列表中的项目?

San*_*ta7 0 python

我有一个来自不同路径的文件列表,但其中一些路径包含相同的文件(和文件名)。

我想删除这些重复的文件,但由于它们来自不同的路径,我就是做不到 set(thelist)

最小示例

说我的清单看起来像这样

thelist = ['/path1/path2/file13332', '/path11/path21/file21', 'path1232/path1112/file13332', '/path1/path2/file13339']
Run Code Online (Sandbox Code Playgroud)

什么是最pythonic的方式来获得这个

deduplicatedList = ['/path1/path2/file13332', '/path11/path21/file21', '/path1/path2/file13339']
Run Code Online (Sandbox Code Playgroud)

文件 file13332 两次出现在列表中。我不关心删除了哪个元素

ywb*_*aek 5

一种方法是使用字典:

thelist = ['/path1/path2/file13332', '/path11/path21/file21', 'path1232/path1112/file13332', '/path1/path2/file13339']

deduplicatedList = list({f.split('/')[-1]: f for f in thelist}.values())

print(deduplicatedList)
Run Code Online (Sandbox Code Playgroud)
['path1232/path1112/file13332', '/path11/path21/file21', '/path1/path2/file13339']
Run Code Online (Sandbox Code Playgroud)