python - 在列表中找到一段字符串并替换
问题描述
我遇到过演示如何在列表中查找字符串并替换的帖子,但我很难将搜索推广到仅一段字符串。
例如
listX = ['color green', 'shape circle', 'above t']
我想找到所有以'above'开头的字符串,我已经能够使用any
并保留以下空间对列表进行一些最小搜索,'above '
但我不知道如何替换我找到的内容。
我试图创建的输出是:
['color green', 'shape circle', 'above']
我还想弄清楚如何从列表中删除以 'above' 开头的字符串。
解决方案
['above' if x.startswith('above') else x for x in listX]
如果您想删除所有以开头的字符串,'above'
则可以执行@JonClements 在评论中提到的类似操作:
[x for x in listX if not x.startswith('above')]
或者:
from itertools import filterfalse
list(filterfalse(lambda x: x.startswith('above'), listX))
推荐阅读
- javascript - 如何在 chromebook 上使用 javascript 库?
- httprequest - 是否应该使用来自服务器的错误代码来响应为用户自动执行的每天一次的操作以供进一步尝试?
- android - 如何使用 Flutter 从网站上抓取图像?
- wordpress - 如何根据位置自动为我的 Wordpress 网站推荐语言?
- django - Django 消息框架 - 默认情况下缺少 i18n
- html - 如何在选择下拉列表中使用 Angular 9 的选定值
- winmerge - 如何将 prediffer 应用到 WinMerge 以使其在 diff 中的所有文件上运行?
- excel - 将变体转换为字符串
- java - 在java中将20分钟添加到数字
- python - Tensorflow 2.0:使用 Reshape 进行形状推断返回无维度