我有一个字符串列表。我想提取每个字符串中的第二个单词并将其保存到一个新列表中。有些元素只有一个词。
l = ["OPTY PLN EXTRCT","MRKT COMMUNITY TABLE", "COMM", "EXT OPTY EMP"]
期望的输出:
output = ['PLN', 'COMMUNITY', 'OPTY']
List Comprehension 用于提取第一个单词。
[i.split()[0] for i in l]
下面的代码抛出一个索引错误,因为列表中的元素只有一个单词。
[i.split()[1] for i in l]
如果元素只有一个词,我希望迭代跳过它并继续。 我正在玩 Try and except 但没有成功让它工作。
最佳答案
您可以像 ... if len(i.split()) > 1]
这样在您的理解中添加 if 条件,但是这需要您将单词拆分两次,我们在这里使用 map()
对 l
的每个元素执行一次。
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]
输出:
['PLN', 'COMMUNITY', 'OPTY']
或者,如果您使用的是 python3.8,我们可以使用新的 :=
符号。
output = [words[1] for i in l if len(words := i.split()) > 1]
关于python - 在多词字符串列表中,提取第二个词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59288858/