从字母数字文件名列表中删除重复项

时间:2018-09-25 00:23:26

标签: python sorting unix duplicates alphanumeric

我有一个字母数字文件名列表,如下所示:

['build999.100', 'build999.0', 'buil998.100', 
 'build997.100', 'build996.100', 'build996.0']

我想要一个列表,以删除后缀“。”的重复项,即我希望列表是

['build999.100', 'buil998.100', 'build997.100', 'build996.100']

'.'之后的后缀无关紧要,我只需要根据999, 998等删除重复项。

我正在寻找Python或Unix中的实现。

2 个答案:

答案 0 :(得分:1)

一种简单而有效的方法是使用字典,以前缀为键,因为字典的键是唯一的。

Aspect

答案 1 :(得分:0)

使用正则表达式:

import re
a = ['build999.100', 'build999.0', 'buil998.100', 
    'build997.100', 'build996.100', 'build996.0']
list(set(map(lambda x: re.sub(r'\..*$', '.100', x), a)))

list(set([re.sub(r'\..*$', '.100', x) for x in a]))

结果是

>> ['build996.100', 'build999.100', 'buil998.100', 'build997.100']