我有一个字母数字文件名列表,如下所示:
['build999.100', 'build999.0', 'buil998.100',
'build997.100', 'build996.100', 'build996.0']
我想要一个列表,以删除后缀“。”的重复项,即我希望列表是
['build999.100', 'buil998.100', 'build997.100', 'build996.100']
'.'
之后的后缀无关紧要,我只需要根据999, 998
等删除重复项。
我正在寻找Python或Unix中的实现。
答案 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']