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