Сохранить первые X слов в элементах списка, сохраняя при этом одно измерение? - PullRequest
1 голос
/ 02 июня 2019

У меня есть список элементов, которые составлены из слов. Например:

listA = ["Hello, I'm Margaret and I'm 32 years old", 
"Howdy, I'm Louis and I'm 35 years old",
"Greetings, I'm Veronica, I come from Canada",
"Night, I'm Pepe and I'm a mexican singer"] 

Однако я хочу использовать понимание списка, чтобы сохранить только первые три слова каждого элемента в списке, поэтому результат будет таким:

ListA = ["Hello, I'm Margaret",
"Howdy, I'm Louis",
"Greetings, I'm Veronica",
"Night, I'm Pepe"]

Я пытался использовать следующее понимание списка:

ListA = [i.split()[0:2] for i in ListA]

Но в результате получается список списков, который не нужен:

ListA = [["Hello, I'm Margaret"],
["Howdy, I'm Louis"],
["Greetings, I'm Veronica"],
["Night, I'm Pepe"]]

Является ли использование split () правильным подходом? Спасибо за вашу помощь!

Ответы [ 2 ]

3 голосов
/ 02 июня 2019

Вы почти у цели. Просто не забудьте присоединиться к строке:

ListA = [' '.join(e.split()[0:2]) for e in ListA]

Также вы можете захотеть [0:3], а не [0:2], но это ваше дело.

2 голосов
/ 02 июня 2019

Вы просто забыли join разделить список обратно на строку:

ListA = [' '.join(i.split()[0:2]) for i in ListA]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...