как объединить два списка, не включая элемент, общий для обоих списков в python

#python #list #append

#питон #Список #добавить

Вопрос:

list1= ['ALEX', 'George', 'shyam']

list2= ['George','Ram', 'shyam']

output=['Alex', 'George','Shyam','Ram']

Я старался, чтобы мне это нравилось.

     list1=['ALEX', 'George', 'shyam']
    list2=['George','Ram', 'shyam']
    output=list1
    for j in list2:
        for i in list1:
            if str(j)!=str(i):
                output=output [j]
    print(output)
 

Но это неправильно. Пожалуйста, помогите мне узнать, как поступить с вышеуказанной проблемой! Я новичок в программировании. Заранее благодарю.

Комментарии:

1. Должен ли окончательный список сохранять первоначальный порядок элементов или это не имеет значения?

2. Какой результат вы получаете?

Ответ №1:

 list1=['ALEX', 'George', 'shyam']
list2=['George','Ram', 'shyam']
res = list1.copy()

for el in list2:
    if el not in res:
        res.append(el)

print(res)
 

Комментарии:

1. Это сработает и сохранит порядок оригинального товара за счет создания дополнительной копии.

Ответ №2:

Чтобы объединить два списка, используйте это:

 list1 = ['ALEX', 'George', 'shyam']
list2 = ['George','Ram', 'shyam']
resultList= list(set(list1 ) | set(list2))
print(resultList)
 

Выходной сигнал:
['shyam', 'George', 'ALEX', 'Ram']

Комментарии:

1. Это работает, но при этом будет потерян весь первоначальный порядок — если, конечно, это не требуется.

Ответ №3:

Наборы не могут иметь дубликатов. Таким образом, преобразование списка в набор и обратно в список избавляет от всех дубликатов. Итак, сложите свои списки и преобразуйте больший список в набор:

 list1= ['ALEX', 'George', 'shyam']
list2= ['George','Ram', 'shyam']
result = set(list1   list2)
print(list(result))

#prints ['Ram', 'George', 'ALEX', 'shyam']
 

Ответ №4:

Это даст тот же порядок, что и указано в вопросе

 list1= ['ALEX', 'George', 'shyam']

list2= ['George','Ram', 'shyam']

#output=['Alex', 'George','Shyam','Ram']

output=[x.capitalize() for x in list1] # Copy list but capitalize each string e.g. ALEX -> Alex
for name in list2: # iterate through list2
    if name.capitalize() not in output: # if it is not already in output, append it
        output.append(name)
        
print(output)