с вашими данными вы можете использовать понимание списка со встроенной функцией zip
:
a = [[1,'one'], [2,'two'], [3,'three'],[10,'ten']]
b = [[3,'one'], [1,'two'],[5,'three']]
[[max(e[0], i[0]), e[1]] for e, i in zip(a, b)]
output:
[[3,'one'],[2,'two'],[5,'three']]
если в ваших списках a
и b
у вас нет подсписков в том же порядке (базовая строка), которые вы могли бы использовать:
da = dict((e[::-1] for e in a))
db = dict((e[::-1] for e in b))
[[max(da[k], db[k]), k] for k in set(da).intersection(db)]