Это простой (понятный) способ выполнить то, что вам нужно!
desclist = ['R402 MSG = Desc402','R403 MSG = Desc403',
'R404 MSG = Desc404','R405 MSG = Desc405']
component = ['R402','R403','R404','R406']
combinedlist = []
for i in range(len(component)):
found = False
for j in range(len(desclist)):
if str(component[i]) == str(desclist[j]).split(' ')[0]:
found = True
combinedlist.append(component[i] + ', ' + desclist[j].split(' ',1)[1])
print(component[i], ',', desclist[j].split(' ',1)[1])
#print('Comp : ', component[i], 'Desc : ', desclist[j].split(' ',1)[1])
break
if not found:
print(component[i], ' not found in Description List')
print('Combined List : ', combinedlist)
Вывод:
R402 , MSG = Desc402
R403 , MSG = Desc403
R404 , MSG = Desc404
R406 not found in Description List
Combined List : ['R402, MSG = Desc402', 'R403, MSG = Desc403', 'R404, MSG = Desc404']
Я изменил ваше описание& списки компонентов, чтобы охватить все сценарии, с которыми вы можете столкнуться.Кроме того, в вашем списке описания есть дополнительные кавычки в каждом элементе.Вам нужно будет использовать escape-символы , если вы хотите сохранить эти кавычки в своем списке.
В комбинированном списке, если вы хотите удалить все до знака равенства (в списке описания) затем используйте любой из приведенных ниже (в зависимости от всех элементов в вашем списке описания).
desclist[j].split('=',1)[1]
desclist[j].rpartition('=')[2]