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

Sha*_*ika 22 python string

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

a = ["asd","def","ase","dfg","asd","def","dfg"]
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ers 55

转换为集合:

a = set(a)
Run Code Online (Sandbox Code Playgroud)

或者可选地返回列表:

a = list(set(a))
Run Code Online (Sandbox Code Playgroud)

请注意,这不会保留顺序.如果您想保留订单:

seen = set()
result = []
for item in a:
    if item not in seen:
        seen.add(item)
        result.append(item)
Run Code Online (Sandbox Code Playgroud)

看到它在线工作:ideone


Kru*_*lur 9

使用 set 类型删除重复项

a = list(set(a))
Run Code Online (Sandbox Code Playgroud)


mur*_*ing 6

def getUniqueItems(iterable):
result = []
for item in iterable:
    if item not in result:
        result.append(item)
return result

print (''.join(getUniqueItems(list('apple'))))
Run Code Online (Sandbox Code Playgroud)

PS与此处的答案之一相同,但稍有变化,实际上并不需要设置!


ros*_*dia 5

您可以将它们弹出到 a 中set,然后再返回到列表中:

a = [ ... ]
s = set(a)
a2 = list(s)
Run Code Online (Sandbox Code Playgroud)