Python 检查列表是否包含字符串
Hemank Mehtani
2023年1月30日
字符串是一个字符序列。就像字符串在特定位置存储字符一样,我们可以使用列表来存储字符串的集合。
在本教程中,我们将在 Python 列表中获取具有特定值的字符串。
使用 for
循环检查 Python 列表中的特定字符串
for
用于在 Python 中迭代一个序列。
其获取包含特定值的字符串的实现如下例所示。
py_list = ["a-1", "b-2", "c-3", "a-4"]
new_list = []
for x in py_list:
if "a" in x:
new_list.append(x)
print(new_list)
输出:
['a-1','a-4']
在上面的代码中,在 for
循环中使用了 if
语句来搜索列表 py_list
中包含 a
的字符串。创建另一个名为 new_list
的列表来存储这些特定字符串。
使用列表推导式检查 Python 列表中的特定字符串
列表推导式是一种基于现有列表创建新列表的方法。它提供了更短的语法,比用于创建列表的其他函数和循环更紧凑、更快。
例如,
py_list = ["a-1", "b-2", "c-3", "a-4"]
r = [s for s in py_list if "a" in s]
print(r)
输出:
['a-1', 'a-4']
在上面的代码中,列表推导用于在列表 py_list
中搜索具有 a
的字符串。
请注意,使用其他函数或循环编写相同的代码会花费更多时间,因为它们的实现需要更多代码,但列表推导式解决了这个问题。
我们还可以使用列表推导来找出包含多个特定值的字符串,即,我们可以通过组合两个推导在 py_list
中找到包含 a
和 b
的字符串。
例如,
py_list = ["a-1", "b-2", "c-3", "a-4", "b-8"]
q = ["a", "b"]
r = [s for s in py_list if any(xs in s for xs in q)]
print(r)
输出:
['a-1', 'b-2', 'a-4','b-8']
使用 filter()
函数获取 Python 列表中的特定字符串
filter()
函数在检查每个元素是否满足某些条件的函数的帮助下过滤给定的可迭代对象。
它返回一个迭代器,该迭代器对可迭代对象中的每个元素进行检查。
例如,
py_lst = ["a-1", "b-2", "c-3", "a-4"]
filter(lambda x: "a" in x, py_lst)
print(filter(lambda x: "a" in x, py_lst))
输出:
<filter object at 0x7fd36c1905e0>
请注意,上面的输出是一个过滤器迭代器类型对象,因为 filter()
函数返回一个迭代器而不是一个列表。
我们可以使用 list()
函数(如下面的代码所示)来获取列表。
list(filter(lambda x: "a" in x, py_lst))
输出:
['a-1','a-4']
在上面的代码中,我们使用 filter()
在列表 py_list
中查找具有特定值的字符串。
相关文章 - Python String
- 在 Python 中从字符串中删除逗号
- 在 Python 中将字符串转换为变量名
- Python 如何去掉字符串中的空格/空白符
- 如何在 Python 中从字符串中提取数字
- Python 如何将字符串转换为时间日期 datetime 格式
- Python2 和 3 中如何将(Unicode)字符串转换为小写