将前 X 个单词保留在列表元素中,同时保持列表一个维度



我有一个列表,哪些元素是由单词组成的。例如:

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(( 是正确的方法吗?感谢您的帮助!

你快到了。只要确保重新连接字符串:

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

此外,您可能想要[0:3]而不是[0:2],但这取决于您。

您只是忘记将拆分的列表join回字符串:

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

最新更新