I have a challenge in my class that is to split a sentence into a list of separate words using iteration. I can't use any .split functions. Anybody had any ideas?
Asked
Active
Viewed 33 times
-2
-
1Where is your code? – Joao Vitorino Oct 27 '17 at 01:50
-
Tried Googling? – Mark Fitzgerald Oct 27 '17 at 09:27
-
A simple search for "[python]split a sentence" shows this has already been answered. [This](https://stackoverflow.com/questions/743806/how-to-split-a-string-into-a-list) may help. – Mark Fitzgerald Oct 27 '17 at 09:57
-
@MarkFitzgerald, the OP can't use `.split()` and nearly all of the many answers on that page use `.split()`. [One that doesn't](https://stackoverflow.com/a/744046/5771269) addresses natural language issues which are likely to come up as soon as a simple solution is tried. – cdlane Oct 27 '17 at 19:39
2 Answers
0
sentence = 'how now brown cow'
words = []
wordStartIndex = 0
for i in range(0,len(sentence)):
if sentence[i:i+1] == ' ':
if i > wordStartIndex:
words.append(sentence[wordStartIndex:i])
wordStartIndex = i + 1
if i > wordStartIndex:
words.append(sentence[wordStartIndex:len(sentence)])
for w in words:
print('word = ' + w)
Needs tweaking for leading spaces or multiple spaces or punctuation.

John Anderson
- 35,991
- 4
- 13
- 36
0
I never miss an opportunity to drag out itertools.groupby()
:
from itertools import groupby
sentence = 'How now brown cow?'
words = []
for isalpha, characters in groupby(sentence, str.isalpha):
if isalpha: # characters are letters
words.append(''.join(characters))
print(words)
OUTPUT
% python3 test.py
['How', 'now', 'brown', 'cow']
%
Now go back and define what you mean by 'word', e.g. what do you want to do about hyphens, apostrophes, etc.

cdlane
- 40,441
- 5
- 32
- 81