Как написать код для метода split в Python 3.5? - PullRequest
0 голосов
/ 07 июля 2019

Я только что узнал о методе split, который разбивает строку на пробелы и помещает их в другой список. Я хочу написать код для метода split, используя для цикла.

Я уже пытался написать для него код, который успешно нарезает строки на пустые места в строке.

abc = 'With three words'
#x = abc.split()
x = list()
for i in range(len(abc)):
    if abc[i] == ' ':
     y = x.append(abc[:i])
     continue
print(x)

Я хочу знать, как я могу начать цикл обратно с того места, где он остановился и вошел в условия if. Например, когда я использовал метод append, чтобы разрезать строку abc и добавить в список «x». Цикл снова начинается с начала, и я хочу начать цикл с этой точки.

Ответы [ 2 ]

0 голосов
/ 07 июля 2019

Альтернативный способ сделать split: -

abc = 'With three words'
x = list()
last_index = 0    
length = len(abc)-1   #To get length of string
for i in range(len(abc)):
    if i != length:
        if abc[i] == ' ':      
            x.append(abc[last_index:i])   
            last_index = i+1
    else:
        x.append(abc[last_index:length])

print(x)

Я надеюсь, что это может помочь вам

0 голосов
/ 07 июля 2019

Если вы хотите придерживаться своего кода как можно ближе, вы можете попробовать следующее.Обычный способ - просто использовать str.split()

изменения, которые я сделал для вас:

  • Отслеживать последний найденный пробел
  • Не проверять толькопробелы, но также и конец строки для получения последнего фрагмента.

abc = 'With three words'
#x = abc.split()
x = list()
last_white_space = 0
for i in range(len(abc)):
    if abc[i] == ' ' or i == len(abc) - 1:
     x.append(abc[last_white_space:i+1])
     last_white_space = i+1

print(x)

>>> ['With', 'three', 'words']
...