Определение позиции символа в строке

335 просмотра
0
0 Комментариев

Произвожу обход по строке, для каждого её символа необходимо определять, на четной или нечетной по счету позиции он находится:

for s in str:
    if str.index(s) % 2 == 0: ...

но такой способ не работает, когда в строке повторяющиеся символы: метод находит первый встретившийся символ, а не тот, по которому в данном случае итерируемся.

Есть ли подходящий метод для корректного определения индекса именно данного символа?


Добавить комментарий

2 Answers

Python Опубликовано 16.12.2018
0

Более предпочтительно вместо range(len(s)) использовать enumerate:

for i, c in enumerate(s):
    if i % 2 == 0:
        print c
        ...

enumerate «преобразует» входную строку в последовательность пар (номер, символ). Для списков и любых других итерируемых объектов это будут пары (номер, очередной элемент).

Это будет работать и с объектами, количество элементов в которых заранее не известно, например при чтении строк из файла.

Добавить комментарий
0

Вместо перебора символов строки, лучше будет пройтись по позициям в строке. Из не и четность позиции сразу будет ясна, и символ в данной позиции можно взять

for i in range(len(s)):
    if i % 2 == 0:
        print s[i]
        ...

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up