Индекс списка приращения, если условие - PullRequest
0 голосов
/ 22 декабря 2018

При переборе всех элементов в списке я хочу пропустить последующие два элемента при обнаружении определенного элемента, например:

l1 = ["a", "b", "c", "d", "e", "f"]
for index, element in enumerate(l1):
    if element == "b":
        index = index + 2
    else:
        print(index, element)

0 a
2 c
3 d
4 e
5 f

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Изменение индекса не будет работать, потому что он создан итератором перечисления.Вы можете вызвать next() на итераторе самостоятельно:

l1 = ["a", "b", "c", "d", "e", "f"]

iter  = enumerate(l1)
for index, element in iter:
    if element == "b":
        next(iter, None) # None avoids error if b is at the end
    else:
        print(index, element)

0 a
3 d
4 e
5 f

0 голосов
/ 22 декабря 2018
l1 = ["a", "b", "c", "d", "e", "f"]
index = 0
while index < len(l1):
    if l1[index] == "b":
        index += 2
    else:
        print(index, l1[index])
        index += 1


0 a
3 d
4 e
5 f

Можно использовать цикл while.index += 1 в случае, если вы хотите 2 c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...