Как разбить строку в список?

Ниже приведены способы использования этого ключевого слова в java:

  1. Использование ключевого слова this для ссылки на текущие переменные экземпляра класса
  2. Использование this() для вызова конструктор текущего класса
  3. Использование ключевого слова this для возврата текущего экземпляра класса
  4. Использование ключевого слова this в качестве параметра метода

https://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html

528
задан ChrisF 25 January 2019 в 16:12
поделиться

6 ответов

text.split()

Этого должно быть достаточно для сохранения каждого слова в списке. words - это уже список слов из предложения, поэтому цикл не нужен.

Во-вторых, это может быть опечатка, но у вас немного запутался цикл. Если вы действительно хотите использовать append, это будет:

words.append(word)

не

word.append(words)
469
ответ дан 22 November 2019 в 22:23
поделиться

Разбивает строку в тексте на любые последовательные пробелы.

words = text.split()      

Разбивать строку в тексте на разделителе: "," .

words = text.split(",")   

Переменная слов будет списком и будет содержать слова из текста split на разделителе.

432
ответ дан 22 November 2019 в 22:23
поделиться

str.split ( )

Возвращает список слов в строке, используя sep в качестве разделителя. ... Если sep не указан или None, применяется другой алгоритм разбиения: серии последовательных пробелов рассматриваются как один разделитель, и результат не будет содержать пустых строк в начале или конце, если строка имеет начальный или конечный пробельные.

>>> line="a sentence with a few words"
>>> line.split()
['a', 'sentence', 'with', 'a', 'few', 'words']
>>> 
84
ответ дан 22 November 2019 в 22:23
поделиться

В зависимости от того, что вы планируете делать со своим предложением в виде списка, вы можете посмотреть на Набор для изучения естественного языка . Это имеет дело с обработкой текста и оценкой. Вы также можете использовать его для решения своей проблемы:

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 () , лучше, если вы не планируете выполнять какие-либо сложные манипуляции с предложением.

[Изменено]

51
ответ дан 22 November 2019 в 22:23
поделиться

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]
15
ответ дан 22 November 2019 в 22:23
поделиться

Я думаю, что вы запутались из-за опечатки.

Замените print (words) на print (word) внутри цикла, чтобы каждое слово печаталось в отдельной строке

4
ответ дан 22 November 2019 в 22:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: