In [1]: import re
In [2]: l = ["a1", "a1", "b1", "b1"]
In [3]: items_to_dedupe = [x for x in l if re.match(r"a\d", x)]
In [4]: leave_alone = [x for x in l if x not in items_to_dedupe]
In [5]: list(set(items_to_dedupe)) + leave_alone
Out[5]: ['a1', 'b1', 'b1']
import re
from functools import reduce # this import is not needed in python 2.*
l = ['a1', 'a1', 'b1', 'b1']
print reduce(lambda acc, el: acc if re.match(r'a\d', el) and el in acc else acc + [el], l, [])
下面是另一个解决方案,使用
list(set(stuff))
从stuff
生成一个list
的唯一内容(因为set
会自动消除重复内容):可以使用^{} 和^{} :
如果您只想使用
regex
,您可以连接n使用re.sub
的元素,但请注意,它适用于这种特殊情况!,
是分隔符!地址:抱歉,这是没有列表理解的解决方案。严格要求吗?你知道吗
相关问题 更多 >
编程相关推荐