在多字字符串列表中,提取第二个字

我有一个字符串列表。我想提取每个字符串中的第二个单词并将其保存到新列表中。有些元素只有一个单词。

l = ["OPTY PLN EXTRCT","MRKT COMMUNITY TABLE","COMM","EXT OPTY EMP"] 

所需的输出:

output = ['PLN','COMMUNITY','OPTY']

列表推导可以提取第一个单词。

[i.split()[0] for i in l] 

下面的代码引发索引错误,因为列表中的元素只有一个单词。

[i.split()[1] for i in l]

如果元素只有一个单词,我希望迭代跳过它并继续。 我正在玩“尝试”游戏,但没有成功使它工作。

x357904377 回答:在多字字符串列表中,提取第二个字

您可以在条件理解中添加... if len(i.split()) > 1]之类的if条件,但这需要您将单词拆分两次,这里我们使用{{1 }}。

l

输出:

map()

或者,如果您使用的是python3.8,则可以使用新的:=表示法。

l = ["OPTY PLN EXTRCT","MRKT COMMUNITY TABLE","COMM","EXT OPTY EMP"]

output = [words[1] for words in map(str.split,l) if len(words) > 1]
,
words = [w.split(None,3)[1] for w in l if any(x.isspace() for x in w.strip())]

如果它是一个空字符串,仅由空格组成,并且确实包含字符,但之间没有空格,则将从列表中排除该单词。因此,您至少要有两个单词才能对其进行拆分和提取。请注意,我的拆分解决方案会在第二个单词之后停止拆分,因此字符串中可能包含很多拆分,但split()不会通过全部处理而浪费时间。

本文链接:https://www.f2er.com/2940671.html

大家都在问