Python 中检查列表是否包含子字符串

Python 中检查列表是否包含子字符串

Check if a list contains a substring in Python

使用该any()函数检查列表是否包含子字符串,例如
if any(substring in item for item in my_list):. 如果列表包含子字符串,则any()函数将返回,否则返回。TrueFalse

主程序
my_list = ['apple', 'banana', 'kiwi']

substring = 'app'

if any(substring in item for item in my_list):
    # 👇️ this runs
    print('The substring is contained in the list')
else:
    print('The substring is NOT contained in the list')

# 👇️ True
print(any(substring in item for item in my_list))

我们使用生成器表达式来遍历列表。

生成器表达式用于对每个元素执行某些操作或选择满足条件的元素子集。

在每次迭代中,我们检查当前列表项中是否包含子字符串并返回结果。

any函数接受一个可迭代对象作为参数,如果可迭代对象中True任何元素为真则返回。

主程序
my_list = ['apple', 'banana', 'kiwi']

substring = 'app'

if any(substring in item for item in my_list):
    # 👇️ this runs
    print('The substring is contained in the list')

如果any()函数遇到包含指定子串的字符串,就会短路返回True

如果可迭代对象为空或可迭代对象中的所有元素都不为真,则any函数返回False

in 运算符
测试成员资格

例如,如果是 的成员,则
x in s计算为 ,否则计算为TruexsFalse

如果您需要以不区分大小写的方式检查列表是否包含子字符串,请将两个字符串都转换为小写。

主程序
my_list = ['APPLE', 'BANANA', 'KIWI']

substring = 'app'

if any(substring.lower() in item.lower() for item in my_list):
    # 👇️ this runs
    print('The substring is contained in the list')
else:
    print('The substring is NOT contained in the list')

# 👇️ True
print(any(substring.lower() in item.lower() for item in my_list))

我们使用该str.lower()方法将子字符串和字符串转换为小写。

str.lower方法返回字符串
的副本,其中所有大小写字符都转换为小写。

要执行不区分大小写的比较,两个字符串都必须是小写或大写。

如果您需要过滤掉所有不包含指定子字符串的列表项,请使用列表理解。

主程序
my_list = ['apple', 'banana', 'kiwi']

substring = 'app'

matching_items = [item for item in my_list if substring in item]

# 👇️ ['apple']
print(matching_items)

列表理解遍历列表并过滤掉不包含子字符串的项目。

如果您的列表包含非字符串类型的项目,请在使用in运算符之前将它们转换为字符串。

主程序
my_list = ['apple', 100, 'banana', 500, 'kiwi']

substring = 'ki'


if any(substring in str(item) for item in my_list):
    # 👇️ this runs
    print('The substring is contained in the list')
else:
    print('The substring is NOT contained in the list')

在使用运算符之前,我们使用str()该类将每个列表项转换为字符串
in

这是必要的,因为某些类型(例如整数和浮点数)是不可迭代的。

发表评论