我在列表下方。
['AAB', 'CAA', 'ADA', 'CADA', 'AACA']
我正试图获得
['AB', 'CA', 'AD', 'CAD', 'AC']
出局顺序很重要。
答案 0 :(得分:1)
输出中字符的顺序似乎对您很重要。您可以像这样使用OrderedDict
:
from collections import OrderedDict
a = ['AAB', 'CAA', 'ADA', 'CADA', 'AACA']
print(["".join(OrderedDict.fromkeys(i)) for i in a])
# ['AB', 'CA', 'AD', 'CAD', 'AC']
答案 1 :(得分:1)
没有OrderedDict
并使用set
并保持输出顺序。
x = ['AAB', 'CAA', 'ADA', 'CADA', 'AACA']
["".join([z.add(c) or c for c in w if c not in z]) for w, z in [(w, set()) for w in x]]
输出:
['AB', 'CA', 'AD', 'CAD', 'AC']
列表理解实际上填充了每个单词的集合,因此复杂度不会增加。