在 Python 中查找列表中的字符串

Manav Narula 2023年1月30日
  1. 在 Python 中使用 for 循环从列表中查找包含特定子字符串的元素
  2. 使用 filter() 函数从 Python 列表中查找包含特定子字符串的元素
  3. 使用正则表达式从 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 Narula avatar Manav Narula avatar

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

相关文章 - Python List