Добрый день. Помогите, пожалуйста, решить задачку. Есть два списка:
a = [('1', 'a', 'b', 'c'), ('2', 'x', 'y', 'z'), ('3', 'x', 'y', 'z')]
b = [('a', 'b', 'c', 'd'), ('x', 'y', 'z', 'w'), ('x', 'y', 'z', 'w'), ('u', 'o', 'n', 'm')]
Нужно найти совпадения элементов первого списка со элементами второго, и если такие совпадения есть, то объединить их. Например, если 1, 2 и 3 элементы 0 кортежа списка
a совпадают с 0, 1 и 2 элементом 0 кортежа списка
b, то мы берём 0 элемент 0 кортежа списка
a и добавляем его в 0 позицию 0 кортежа списка
b, то есть получаем result = ['1', 'a', 'b', 'c', 'd'].
Также 1 и 2 кортеж списка
a имеет совпадения с 1 и 2 кортежем списка
b и результат должен быть: ['2', 'x', 'y', 'z', 'w'] и ['3', 'x', 'y', 'z', 'w'] соответственно.
Я пробовал найти совпадения так:
total = []
for i in a:
for y in b:
if i[1:4] == y[0:3]:
print("Совпадение: ", "i = ", i[1:4], "y = ", y[0:3])
result = list(y)
result.insert(0, i[0])
print("result :", result)
total.append(result)
print("total :", total)
Проблема заключается в том, что 1 и 2 кортеж списка
b одинаковые, поэтому в результат
total попадают дубликаты значений
result. Можно ли как-то убрать дубликаты в
total, чтобы получить в итоге [['1', 'a', 'b', 'c', 'd'], ['2', 'x', 'y', 'z', 'w'], ['3', 'x', 'y', 'z', 'w']], или есть другие пути решения?