首页 > 解决方案 > 如何检查字符串是否包含Python列表中的任何3个元素

问题描述

如何检查给定列表中的任何 3 个元素是否存在于字符串中。

例如 -

words_to_check = ['apple', 'orange', 'banana', 'pear']

sample_string = 'apple, orange, and banana are fruits'
Answer - True

sample_string = 'apple and orange are fruits'
Answer - False (since only 2 elements match)

sample_string = 'apple, banana and pear are fruits'
Answer - True


sample_string = 'apple is a fruit'
Answer - False


我知道如果我想检查字符串是否包含列表中的任何 1 个元素,我可以执行以下操作 -

if any(fruit in sample_string for fruit in words_to_check):
    print(sample_string)

我怎样才能对任何 3 个(或 n 个)元素执行相同的操作?

我知道我可以使用 3 if 条件来做到这一点,但有没有优雅/pythonic 的方法来解决这个问题?

标签: pythonpython-3.x

解决方案


您可以使用以下方法:

>>> sample_string = 'apple, orange, and banana are fruits'
>>> len([True for fruit in words_to_check if fruit in sample_string])
3

推荐阅读