с помощью enumerate
вы можете решить вашу проблему:
list1 = ['5', 'orange', '20', 'apple', '50', 'blender']
list2 = ['25', 'blender', '20', 'pear', '40', 'spatula']
for n1, item1 in enumerate(list1[1::2]):
for n2, item2 in enumerate(list2[1::2]):
if item1 == item2:
print(list1[n1*2], list2[n2*2], item1)
перечисление возвращает tuple
, где первый элемент - это счетчик итерации, второй - элемент.
, поскольку enumerate
считает итерацию, и вы шагаете 2, нам нужно умножить на 2:
orange
будет первой итерацией, поэтому n1
будет 0, поэтому предыдущее значение по индексу 0*2
apple
будет во второй итерации, поэтому n1
будет 1, поэтому предыдущее значение будет с индексом 1*2
blender
будет в третьей итерации, поэтому n1
будет 2поэтому предыдущее значение находится в индексе 2*2
.
это означает, что в for n1, item1 in enumerate(list1[1::2]):
n1
и item1
будут установлены следующие значения:
Итерация 1: n1 = 0, item1 = orange, previous_index = 0 * 2
Итерация 2: n1 = 1, item1 = apple, previous_index = 1 * 2
Итерация 3: n1 = 2, item1 = blender, previous_index = 2 * 2
То же самое дляfor n2, item2 in enumerate(list2[1::2]):
:
Итерация 1: n2 = 0, item2 = blender, previous_index = 0 * 2
Итерация 2: n2 = 1, item2 = pear, previous_index = 1 * 2
Итерация 3: n2 = 2, item2 = шпатель, previous_index = 2 * 2