python - 在多词字符串列表中,提取第二个词
问题描述
我有一个字符串列表。我想提取每个字符串中的第二个单词并将其保存到一个新列表中。有些元素只有一个词。
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]
如果元素只有一个单词,我希望迭代跳过它并继续。我正在玩一个 Try 和 except 但没有成功让它工作。
解决方案
您可以将 if 条件添加到您的理解中,... if len(i.split()) > 1]
但是这需要您将单词拆分两次,这里我们对l
使用的每个元素执行一次map()
。
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]
推荐阅读
- shell - 检查每个参数是否是 shell 中的整数
- python - 将多个 div 类中的数据抓取到 pandas 数据框中
- java - Java 微优化:缓存或不缓存 System.currentTimeMillis() 返回值?
- c# - c# 谷歌图表日期的日期时间格式(yyyy-mm-ddT00:00:00)
- ios - Azure 语音转文本 API
- python - 慢循环python在python的antoher数据框中搜索数据
- npm - 防止 npm 下载私有注册表中的所有包
- api - 雅虎天气 API 无法搜索变量
- python - 在 Python 中使用变量查找 Json 键
- java - 用于屏蔽 xml 标记内容中除最后 4 位以外的数字的字符串的正则表达式