Ниже приведены способы использования этого ключевого слова в java:
this
для ссылки на текущие переменные экземпляра класса this()
для вызова конструктор текущего класса this
для возврата текущего экземпляра класса this
в качестве параметра метода https://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html
text.split()
Этого должно быть достаточно для сохранения каждого слова в списке. words
- это уже список слов из предложения, поэтому цикл не нужен.
Во-вторых, это может быть опечатка, но у вас немного запутался цикл. Если вы действительно хотите использовать append, это будет:
words.append(word)
не
word.append(words)
Разбивает строку в тексте
на любые последовательные пробелы.
words = text.split()
Разбивать строку в тексте
на разделителе: ","
.
words = text.split(",")
Переменная слов будет списком
и будет содержать слова из текста
split на разделителе.
Возвращает список слов в строке, используя sep в качестве разделителя. ... Если sep не указан или None, применяется другой алгоритм разбиения: серии последовательных пробелов рассматриваются как один разделитель, и результат не будет содержать пустых строк в начале или конце, если строка имеет начальный или конечный пробельные.
>>> line="a sentence with a few words"
>>> line.split()
['a', 'sentence', 'with', 'a', 'few', 'words']
>>>
В зависимости от того, что вы планируете делать со своим предложением в виде списка, вы можете посмотреть на Набор для изучения естественного языка . Это имеет дело с обработкой текста и оценкой. Вы также можете использовать его для решения своей проблемы:
import nltk
words = nltk.word_tokenize(raw_sentence)
Это дает дополнительное преимущество разделения пунктуации.
Пример:
>>> import nltk
>>> s = "The fox's foot grazed the sleeping dog, waking it."
>>> words = nltk.word_tokenize(s)
>>> words
['The', 'fox', "'s", 'foot', 'grazed', 'the', 'sleeping', 'dog', ',',
'waking', 'it', '.']
Это позволяет отфильтровывать любые знаки препинания, которые вам не нужны, и использовать только слова.
Обратите внимание, что другие решения, использующие string.split ()
, лучше, если вы не планируете выполнять какие-либо сложные манипуляции с предложением.
[Изменено]
I want my python function to split a sentence (input) and store each word in a list
The str().split()
method does this, it takes a string, splits it into a list:
>>> the_string = "this is a sentence"
>>> words = the_string.split(" ")
>>> print(words)
['this', 'is', 'a', 'sentence']
>>> type(words)
<type 'list'> # or <class 'list'> in Python 3.0
The problem you're having is because of a typo, you wrote print(words)
instead of print(word)
:
Renaming the word
variable to current_word
, this is what you had:
def split_line(text):
words = text.split()
for current_word in words:
print(words)
..when you should have done:
def split_line(text):
words = text.split()
for current_word in words:
print(current_word)
If for some reason you want to manually construct a list in the for loop, you would use the list append()
method, perhaps because you want to lower-case all words (for example):
my_list = [] # make empty list
for current_word in words:
my_list.append(current_word.lower())
Or more a bit neater, using a list-comprehension:
my_list = [current_word.lower() for current_word in words]
Я думаю, что вы запутались из-за опечатки.
Замените print (words)
на print (word)
внутри цикла, чтобы каждое слово печаталось в отдельной строке