Разделить список списка строк - PullRequest
0 голосов
/ 08 января 2019

У меня есть список из нескольких строк, и я хотел бы иметь список списков строк

Я пытаюсь:

phrases = ['hello how are you', 'the book is good', 'this is amazing', 'i am angry']

list_of_list = [words for phrase in phrases for words in phrase] 

Мой вывод:

['h', 'e', 'l', 'l', 'o', ' ', 'h', 'o', 'w', ' ', ...]

Хороший выход:

[['hello', 'how', 'are', 'you'], ['the', 'book', 'is', 'good'], ['this', 'is', 'amazing'], ['i', 'am', 'angry']

Ответы [ 4 ]

0 голосов
/ 12 января 2019

Другой способ сделать это - использовать map с str.split:

phrases = ['hello how are you', 'the book is good', 'this is amazing', 'i am angry']

splittedPhrases = list(map(str.split,phrases))

print(splittedPhrases)

Выход:

[['hello', 'how', 'are', 'you'], ['the', 'book', 'is', 'good'], ['this', 'is', 'amazing'], ['i', 'am', 'angry']]
0 голосов
/ 08 января 2019

Это будет делать:

list_of_list = [words.split() for words in phrases] 
0 голосов
/ 09 января 2019

Другой вариант, удаление также пунктуации, на всякий случай:

import re

phrases = ['hello! how are you?', 'the book is good!', 'this is amazing!!', 'hey, i am angry']
list_of_list_of_words = [ re.findall(r'\w+', phrase) for phrase in phrases ]

print(list_of_list_of_words)
#=> [['hello', 'how', 'are', 'you'], ['the', 'book', 'is', 'good'], ['this', 'is', 'amazing'], ['hey', 'i', 'am', 'angry']]
0 голосов
/ 08 января 2019

А как же

>>> [phrase.split() for phrase in phrases]
[['hello', 'how', 'are', 'you'], ['the', 'book', 'is', 'good'], ['this', 'is', 'amazing'], ['i', 'am', 'angry']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...