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循环来执行此操作?
只需使用套装:
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)
通常,编程语言将集合表示为一系列独特元素(虽然我可以看到在数学中这似乎不是一个规则).
相关有用的链接:
如果你想保持元素的顺序,因为它们出现在原始列表中,使用groupby从itertools库:
>>> import itertools
>>> [k for k, v in itertools.groupby(x)]
[1, 2, 'a', 'b']
Run Code Online (Sandbox Code Playgroud)
这假设相同的元素已经组合在一起,就像在列表中一样(想想uniq*nix系统中的实用程序).