cycle
хорошо, но я добавлю этот подход по модулю:
{L1[i]: L2[i % len(L2)] for i in range(len(L1))]}
Вы можете подавить предупреждения, потому что вы уверены, что приведение будет работать, потому что все классы, которые вы добавляете, реализуют интерфейс Concrete ...