Вы можете использовать enumerate
и zip
, чтобы уменьшить количество используемых индексаций:
for ii, (a, b) in enumerate(zip(list1, list2)):
list1[ii] = (a + val) % b
Тем не менее, вы, вероятно, лучшеотключите просто использование списка, чтобы полностью исключить необходимость в индексе, поэтому вы можете удалить enumerate
и использовать только zip
, что обеспечивает более чистый код (и более быстрый код для загрузки):
# Creates a new list and rebinds list1 to it:
list1 = [(a + val) % b for a, b in zip(list1, list2)]
# Or if list1 *must* be modified in place, slice assignment can do that:
list1[:] = [(a + val) % b for a, b in zip(list1, list2)]
Обратите внимание, что в обоих примерах я переименовал ваш list
в list1
, потому что затенение имен в конструкторе list
является ужасной идеей.