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

时间:2019-06-02 14:41:42

标签: python list

我有一个列表,其中元素由单词组成。例如:

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 个答案:

答案 0 :(得分:3)

您快到了。只要确保将字符串重新加入即可:

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

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

答案 1 :(得分:2)

您只是忘了join拆分列表回到字符串:

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