从python中的列表中删除重复的字符串

Removing duplicate strings from a list in python

本问题已经有最佳答案,请猛点这里访问。

如果我有一个字符串列表,

1
a = ["asd","def","ase","dfg","asd","def","dfg"]

如何从列表中删除重复项?


转换为集合:

1
a = set(a)

或者选择返回列表:

1
a = list(set(a))

注意这并不能维持秩序。如果要保留顺序:

1
2
3
4
5
6
seen = set()
result = []
for item in a:
    if item not in seen:
        seen.add(item)
        result.append(item)

在线查看:ideone


1
2
3
4
5
6
7
8
def getUniqueItems(iterable):
result = []
for item in iterable:
    if item not in result:
        result.append(item)
return result

print (''.join(getUniqueItems(list('apple'))))

同样的事情,这里的答案之一,但有一点变化,设置不是真正需要的!


使用集合类型删除重复项

1
a = list(set(a))

你可以把它们放进一个set中,然后再放回到一个列表中:

1
2
3
a = [ ... ]
s = set(a)
a2 = list(s)