如何在列表中打印元素(非重复)

Hen*_*ang 1 python list python-2.7

例如 : x=[1,1,1,1,2,2,2,"a","a","a","b","b"]

我想打印: 1,2,"a","b"

如果案例是列表很长,我甚至不知道列表中有多少种元素呢?

Python中有没有可以做到的功能?或者,我如何编写for循环来执行此操作?

fel*_*ins 7

只需使用套装:

x = [1,1,1,1,2,2,2,"a","a","a","b","b"]
uniques = set(x) # the magic!
print uniques # results: set(['a', 1, 2, 'b'])
Run Code Online (Sandbox Code Playgroud)

当然,如果你想要一个列表对象(感谢@alfasin):

uniques = list(set(x))
Run Code Online (Sandbox Code Playgroud)

通常,编程语言将集合表示为一系列独特元素(虽然我可以看到在数学中这似乎不是一个规则).

相关有用的链接:


Ale*_*ley 5

如果你想保持元素的顺序,因为它们出现在原始列表中,使用groupbyitertools库:

>>> import itertools
>>> [k for k, v in itertools.groupby(x)]
[1, 2, 'a', 'b']
Run Code Online (Sandbox Code Playgroud)

这假设相同的元素已经组合在一起,就像在列表中一样(想想uniq*nix系统中的实用程序).