我试图定义一个接受任意数量列表的函数,并从这些列表生成一个唯一元素列表。 (我使用的是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
如何达到上述效果?
答案 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']