合并两个没有重复值的列表

时间:2018-09-19 10:01:42

标签: python python-2.7

list1 = ["palani", "samy","be"]
list2 = ["palani", "samys","be"]

def find_common(list1,list2):
    for x in list1:
      for y in list2:
        if x == y :
          list2.remove(x) 


    print" unique string 1:",list1
    print" unique string 2:",list2
    print" combained string 2:",list1.append(list2)


find_common(list1,list2)

enter image description here

我为什么得到None

6 个答案:

答案 0 :(得分:3)

这可以通过使用set来完成:

a = ['hello', 'world']
b = ['hello', 'universe']

unique = list(set(a + b))

print(unique)

# ['universe', 'hello', 'world']

注意:这不适用于词典列表!

答案 1 :(得分:2)

list.append方法就地修改列表并返回None。您应该使用+运算符来合并两个列表。

更改:

print" combained string 2:",list1.append(list2)

收件人:

print" combained string 2:",list1+list2

答案 2 :(得分:1)

import numpy as np

np.unique(list1+list2) # keeps only non dublicates

这也可以保留顺序,以防万一。

答案 3 :(得分:0)

您可以使用set操作来实现此目的。

unique = list(set(list1).symmetric_difference(set(list2)))

答案 4 :(得分:0)

您可以尝试:

def find_common(list1,list2):
    return list(set(list1+list2))

答案 5 :(得分:0)

list3 = list1[:]
[list3.append(i) for i in list2 if i not in list1] 

print(l3)
['palani', 'samy', 'be', 'samys']