Search code examples
pythonlistmergeconcatenation

Merge two multidimensional list on a matching element in python


I am trying to merge two multidimensional list on a matching element. For example:

list1 = [['1', '2' ,'A'], ['3','4','D']]
list2 = [['A','A1'],['B','B1'],['C','C1'],['D','D1'],['D','D2']]

And the output I want is:

[['1', '2', 'A', 'A1'],['3', '4', 'D', 'D1'],['3', '4', 'D', 'D2']]

Can anyone help me? Thank you.


Solution

  • out = [ b + a[1:] for a in list2 for b in list1 if b[-1] == a[0] ]
    print( out )
    

    Output:

    [['1', '2', 'A', 'A1'], ['3', '4', 'D', 'D1'], ['3', '4', 'D', 'D2']]