Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在不使用for循环的情况下查找list的任何元素是否包含子字符串_Python 3.x_String - Fatal编程技术网

Python 3.x 如何在不使用for循环的情况下查找list的任何元素是否包含子字符串

Python 3.x 如何在不使用for循环的情况下查找list的任何元素是否包含子字符串,python-3.x,string,Python 3.x,String,假设我有 list=[“树”、“门”、“买”、“火车”、“测试”] 我的字符串如下: string=“rain” 我想使用一个规则来理解列表中的任何元素是否包含我的字符串。在这种情况下,我希望这变成现实 我知道我可以这样做: flag = False for element in list: if string in element: flag = True 然而,我想知道是否有一种方法。或者有一种方法可以在一个简单的if语句中控制它 谢谢。如果你真的讨厌字符串,con

假设我有

list=[“树”、“门”、“买”、“火车”、“测试”]

我的字符串如下:

string=“rain”

我想使用一个规则来理解列表中的任何元素是否包含我的字符串。在这种情况下,我希望这变成现实

我知道我可以这样做:

flag = False
for element in list:
    if string in element:
        flag = True
然而,我想知道是否有一种方法。或者有一种方法可以在一个简单的if语句中控制它


谢谢。

如果你真的讨厌字符串,concat是你可以实现的一种方法。其他的可以是列表理解,但这只是for循环的一个线性版本

还需要注意的是,下面的答案将需要O(N)时间,所以它不是真的更快。只是一种不同的实现方式

arr = ["tree", "gate", "buy", "train", "test"]
ans = False
ele= "rain"
if ele in "~".join(arr): ans=True
ans

生成器表达式或列表理解对您来说算是“for循环”吗?您可以编写
any(元素中的字符串对应列表中的元素)
,但基本上这只是编写相同内容的另一种方式,如果您想避免使用
for
关键字,可以使用
any(map(lambda元素:元素中的字符串,列表))
,另一种方法是加入列表:
字符串在“|”中。加入(列表)
如果你感兴趣,试着找出哪种方法最快我只是想用一种简单的方法来写它,似乎这是最简单的方法。非常感谢。我可以问另外一件事吗:如果我有arr=[“+”、“-”、“*”、“/”]string=“一/二”作为输入,我想在输出中获得[“一”、“/”、“二”]。更清楚的是,如果字符串中出现了arr元素,那么在这种情况下,我如何找到它?查看
string.split
它会执行您想要的操作。