Использование zip()
к паре значений из обоих списков и collections.defaultdict()
производить отображение:
from collections import defaultdict
mapping = defaultdict(set)
for v1, v2 in zip(List1, List2):
mapping[v2].add(v1)
Теперь у вас есть значение для сопоставления словаря из списка 2 для множеств, содержащих уникальные значения из списка 1; Вы можете распечатать их, чтобы соответствовать вашему выходу образца с:
for v2 in sorted(mapping):
print '{} maps to {}'.format(v2, ', '.join(map(str, sorted(mapping[v2]))))
Для вашего ввода пробы, это производит:
>>> mapping
defaultdict(<type 'set'>, {'A': set([1, 2, 3]), 'C': set([1]), 'B': set([1]), 'E': set([2]), 'D': set([2]), 'M': set([3]), 'L': set([3])})
>>> for v2 in sorted(mapping):
... print '{} maps to {}'.format(v2, ', '.join(map(str, sorted(mapping[v2]))))
...
A maps to 1, 2, 3
B maps to 1
C maps to 1
D maps to 2
E maps to 2
L maps to 3
M maps to 3
Вы должны показать, что вы пытались, быстро или нет, прежде чем обращаться за помощью. – slider
ОК. Заметил в следующий раз ... – fitziano