繁体   English   中英

从列表列表生成唯一列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM