я получил 2 одномерный список:Замена каждого 2-го элемента в списке
[[5, 80, 2, 57, 5, 97], [2, 78, 2, 56, 6, 62], [5, 34, 3, 54, 6, 5, 2, 58, 5, 61, 5, 16]]
В котором мне нужно изменить каждый второй элемент 0, начиная с первого. Так оно и должно выглядеть следующим образом:
[[0, 80, 0, 57, 0, 97], [0, 78, 0, 56, 0, 62], [0, 34, 0, 54, 0, 5, 0, 58, 0, 61, 0, 16]]
алгоритм я использую:
for i in tempL:
for j, item in enumerate(i):
if i.index(item) % 2 == 0:
print('change, index:'),
print(i.index(item))
i[j] = 0
else:
print('not change, index:'),
print(i.index(item))
Но то, что я получаю это:
change, index: 0
not change, index: 1
change, index: 2
not change, index: 3
change, index: 4
not change, index: 5
change, index: 0
not change, index: 1
change, index: 2
not change, index: 3
change, index: 4
not change, index: 5
change, index: 0
not change, index: 1
change, index: 2
not change, index: 3
change, index: 4
not change, index: 5
change, index: 6
not change, index: 7
not change, index: 5
not change, index: 9
not change, index: 5
not change, index: 11
[[0, 80, 0, 57, 0, 97], [0, 78, 0, 56, 0, 62], [0, 34, 0, 54, 0, 5, 0, 58, 5, 61, 5, 16]]
Некоторые элементы не изменяются, и это потому, что (I добавленный индекс, чтобы увидеть это), он считает, что индекс этих элементов по какой-то причине равен 7 и 9. Что это может быть, потому что я искал ошибку так долго, пока не могу найти.
Я проверял дважды, в этом списке нет лишних пробелов.
Почему вы используете 'i.index'? Разве вы не имеете в виду 'j'? – kojiro