Объединить два списка без повторяющихся значений

1
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)

Изображение 174551

Почему я не получаю None?

Теги:
python-2.7

5 ответов

0
Лучший ответ
import numpy as np

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

это также сохраняет порядок, который был приоритетом

2

Метод list.append изменяет список на месте и возвращает None. Вы должны использовать оператор + для объединения двух списков.

Изменить:

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

чтобы:

print" combained string 2:",list1+list2
  • 1
    спасибо за свои работы
  • 0
    Рад помочь. Можете ли вы пометить этот ответ как принятый, если сочтете его правильным?
0
list3 = list1[:]
[list3.append(i) for i in list2 if i not in list1] 

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

Для этого вы можете использовать операции set.

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

вы можете попробовать:

def find_common(list1,list2):
    return list(set(list1+list2))
  • 1
    Его работы, спасибо большое список (list1 + list2)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню