2015-04-14 3 views
-4

Я хочу проверить следующий символ в строке. Мой код на данный момент:Проверка следующего символа в строке

Я вводил слово (например, hedge).

split_word = word.split() 
empty_list = [] 
for i in split_word: 
    if i in "aeiou": 
     if split_word[i+1] in "drlsj": 
      empty_list.append(i) 
      empty_list.append(i+1) 

Теперь, очевидно, нотация i+1 мусор, но это было просто, чтобы помочь прояснить мысль, что я хочу, чтобы каким-то образом получить доступ символ после i (как только его сдал, если чек).

+5

Вы можете показать вашу ожидаемую из положить и объяснить, что вы хотите делать именно? – Kasramvd

+0

Мартинн-анвер - лучший. Вы также можете посмотреть ['enumerate'] (https://docs.python.org/2/library/functions.html#enumerate) –

ответ

5

Вы можете контактировать через пар символов; что позволит вам проверить как:

for a, b in zip(split_word, split_word[1:]): 
    if a in "aeiou" and b in "drlsj": 
     empty_list += [a, b] 

В zip() function паре до значения из входов; первые элементы вместе, два элемента вместе и т. д. Так как ввод дает слово и слово минус первый символ, вы получаете пары символов вдоль слова. Для hedge это будет ('h', 'e'), затем ('e', 'd') затем ('d', 'g') и т. Д. Производятся только полные пары, в конце нет пары (None, 'e').

Ваша собственная попытка не включает указатель, только символы из слова. Вы могли бы использовать enumerate() function, чтобы добавить индекс в цикл. Однако вам нужно быть осторожным, чтобы вы не пытались индексировать за пределами длины слова! Цикл по всему слову минус последнего символа в этом случае:

for i, a in enumerate(split_word[:-1]): 
    b = split_word[i + 1] 
    # etc. 
Смежные вопросы