从列表列表中生成唯一列表

时间:2014-07-09 19:05:54

标签: python unique python-3.4

我试图定义一个接受任意数量列表的函数,并从这些列表生成一个唯一元素列表。 (我使用的是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

如何达到上述效果?

1 个答案:

答案 0 :(得分:3)

您可以使用set

list(set(a+b))

正如Greg在评论中解释的那样,Python将每个列表视为set,其中具有的属性无序独特的元素。

通过将集合添加到一起,您将能够保持 unordered-ness 的属性。

来自翻译:

>>> a+b
['lion', 'tiger', 'panther', 'dog', 'lion', 'bear']
>>> list(set(a+b))
['tiger', 'lion', 'dog', 'bear', 'panther']