Объединение элементов списка с условием
Есть список первый:
list1 = ['Первый элемент', 'Второй элемент']
И основной список
list2 = ['Апельсин', 'Яблоко', 'Первый элемент', 'Груша', 'Второй элемент', 'Персик', 'Мандарин', 'Первый элемент']
Необходимо проверить есть ли элемент списка list2 в list1, и если есть, то объединить его с предыдущим элементом.
То есть, должно получиться:
list3 = ['Апельсин', 'ЯблокоПервый элемент', 'ГрушаВторой элемент', 'Персик', 'МандаринПервый элемент']
Как это можно сделать?
Я пытался сделать так:
for i in list2:
if i not in list1:
list3.append(i)
else:
print(list2[list2.index(i)-1] + list1[list1.index(i)])
Ответы (2 шт):
Автор решения: A_Vaclav
→ Ссылка
list1 = ['Первый элемент', 'Второй элемент']
list2 = ['Апельсин', 'Яблоко', 'Первый элемент', 'Груша', 'Второй элемент',
'Персик', 'Мандарин', 'Первый элемент']
tmp = []
for i in range(len(list2)):
if list2[i] in list1:
tmp.append(list2[i - 1] + list2[i])
elif list2[i + 1] in list1:
tmp.append('')
else:
tmp.append(list2[i])
result = [x for x in tmp if x != '']
print(result)
>>>['Апельсин', 'ЯблокоПервый элемент', 'ГрушаВторой элемент', 'Персик', 'МандаринПервый элемент']
Автор решения: SergFSM
→ Ссылка
как вариант, можно воспользоваться встроенной функцией zip, как-то так:
list1 = ['Первый элемент', 'Второй элемент']
list2 = ['Апельсин', 'Яблоко', 'Первый элемент', 'Груша', 'Второй элемент',
'Персик', 'Мандарин', 'Первый элемент','кокос']
list3 = [i + j if j in list1 else i for i,j in zip(list2,list2[1:]+['']) if not i in list1]