Как получить доступ к части строки, возвращаясь в цикле - PullRequest
0 голосов
/ 03 марта 2019
myList = []
myString = "this is my striNg 7"

Скажем, я хотел получить доступ к "N", но мне нужно было сделать это, вернувшись назад в цикле, подобном этому -

for i in myString:
    if i == "7":
       myList.append(i - 3 spaces)

Как мне это сделать?Я изо всех сил пытаюсь найти ответы.Спасибо

Редактировать - извините, я новичок в этом, и я не уверен, почему он не форматирует это правильно

Ответы [ 3 ]

0 голосов
/ 03 марта 2019

Вы можете получить доступ к переменной "N" или 3 символам перед i, выполнив:

for i,str in enumerate(myString):
    if str == "7":
       myList.append(myString[i-3])

Перечисление начнется с i = 0 и будет добавлять 1 к i каждый раз, когда цикл будет продолжаться,но я посоветую вам добавить условие, чтобы избежать отрицательного числа, и ошибка в myString[i-3], например:

for i,str in enumerate(myString):
    if (i > 2 and str == "7"):
       myList.append(myString[i-3])
0 голосов
/ 03 марта 2019

Не уверен, что я получаю то, что вы спрашиваете здесь.Если вам нужен самый высокий индекс, где буква «N» присутствует в вашей строке, str.rfind() и str.rindex() созданы именно для этого.Единственная разница между ними: rfind вернет -1 в случае сбоя, rindex повысит ValueError.Или, если вы хотите выполнить цикл в обратном направлении и добавить буквы в список, начиная с конца строки:

a_list = []
a_string = 'this is a string'

for i in range(len(a_string)-1, -1, -1) :
    a_list.append(a_string[i])

print(a_list)
['g', 'n', 'i', 'r', 't', 's', ' ', 'a', ' ', 's', 'i', ' ', 's', 'i', 'h', 't']
0 голосов
/ 03 марта 2019

Просто зациклите строку от последнего индекса до первого и получите нужный элемент.

myString = "this is my striNg 7";
for (i = myString.length - 1; i > 0; i--) {
  if(myString[i]=='N'){
  console.log('index of N is ' +i);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...