[英]Generate unique list from a list of lists
我正在尝试定义一个函数,该函数将接受任意数量的列表,并将从这些列表中生成唯一元素的单个列表。 (我正在使用Python 3.4)
例:
a = ['lion', 'tiger', 'panther']
b = ['dog', 'lion', 'bear']
c = ['rat', 'dog', 'tiger']
def merge(*var_list):
newlist = []
for item in var_list:
newlist.append(item)
return newlist
评估:
merge(a,b)
生产:
[['lion', 'tiger', 'panther'], ['dog', 'lion', 'bear']]
理想情况下,我希望它生成如下所示的列表:
['lion, 'tiger', 'panther', 'dog', 'bear'] #order is not important
如何获得以上结果?
您可以使用set
:
list(set(a+b))
正如Greg在评论中所解释的那样, Python
将每个列表视为一个set
,其中set具有由无序唯一元素组成的属性。
通过将集合加在一起,您将能够保留unordered-ness的属性。
来自口译员:
>>> a+b
['lion', 'tiger', 'panther', 'dog', 'lion', 'bear']
>>> list(set(a+b))
['tiger', 'lion', 'dog', 'bear', 'panther']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.