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)
Почему я не получаю None
?
import numpy as np
np.unique(list1+list2) # keeps only non dublicates
это также сохраняет порядок, который был приоритетом
Метод list.append
изменяет список на месте и возвращает None
. Вы должны использовать оператор +
для объединения двух списков.
Изменить:
print" combained string 2:",list1.append(list2)
чтобы:
print" combained string 2:",list1+list2
list3 = list1[:]
[list3.append(i) for i in list2 if i not in list1]
print(l3)
['palani', 'samy', 'be', 'samys']
Для этого вы можете использовать операции set
.
unique = list(set(list1).symmetric_difference(set(list2)))
вы можете попробовать:
def find_common(list1,list2):
return list(set(list1+list2))