首页 > 解决方案 > 在列表中找到一段字符串并替换

问题描述

我遇到过演示如何在列表中查找字符串并替换的帖子,但我很难将搜索推广到仅一段字符串。

例如

listX = ['color green', 'shape circle', 'above t']

我想找到所有以'above'开头的字符串,我已经能够使用any并保留以下空间对列表进行一些最小搜索,'above '但我不知道如何替换我找到的内容。

我试图创建的输出是:

['color green', 'shape circle', 'above']

我还想弄清楚如何从列表中删除以 'above' 开头的字符串。

标签: pythonlist

解决方案


['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))

推荐阅读