在 Python 中查找列表中的字符串
Manav Narula
2023年1月30日
-
在 Python 中使用
for
循环从列表中查找包含特定子字符串的元素 -
使用
filter()
函数从 Python 列表中查找包含特定子字符串的元素 - 使用正则表达式从 Python 列表中查找包含特定子字符串的元素
本教程将介绍如何从一个 Python 列表中查找其中有特定子字符串的元素。
我们将使用下面的列表并提取其中有 ack
的字符串。
my_list = ["Jack", "Mack", "Jay", "Mark"]
在 Python 中使用 for
循环从列表中查找包含特定子字符串的元素
在这个方法中,我们遍历列表并检查子字符串是否存在于某个元素中。如果子字符串存在于该元素中,那么我们就将其存储在字符串中。下面的代码显示了如何操作。
str_match = [s for s in my_list if "ack" in s]
print(str_match)
输出:
['Jack', 'Mack']
in
关键字检查给定的字符串,即本例中的"ack"
,是否存在于字符串中。也可以用 __contains__
方法代替,它是字符串类的一个神奇方法。例如:
str_match = [s for s in my_list if s.__contains__("ack")]
print(str_match)
输出:
['Jack', 'Mack']
使用 filter()
函数从 Python 列表中查找包含特定子字符串的元素
filter()
函数借助函数从给定对象中检索数据的子集。该方法将使用 lambda
关键字来定义过滤数据的条件。lambda
关键字在 Python 中创建了一个单行的 lambda
函数。请看下面的代码片段。
str_match = list(filter(lambda x: "ack" in x, my_list))
print(str_match)
输出:
['Jack', 'Mack']
使用正则表达式从 Python 列表中查找包含特定子字符串的元素
正则表达式是一个字符序列,可以作为匹配模式来搜索元素。要使用正则表达式,我们必须导入 re
模块。在这个方法中,我们将使用 for
循环和 re.search()
方法,该方法用于返回与特定模式匹配的元素。下面的代码将解释如何操作。
import re
pattern = re.compile(r"ack")
str_match = [x for x in my_list if re.search("ack", x)]
print(str_match)
输出:
['Jack', 'Mack']
作者: Manav Narula
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn