我有一个列表,其中元素由单词组成。例如:
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()是否正确?谢谢您的帮助!
答案 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]