如何将判断字符串是否在列表元素中的Python多行代码改写为单行?
单行实现字符串存在性检查
当然可以!Python的内置特性刚好能帮你把这段多行逻辑浓缩成一行简洁的代码,而且完全保留原有的短路求值特性——找到第一个匹配项就立刻返回,不用遍历整个列表,效率和原代码一模一样。
单行代码实现
直接用any()函数结合生成器表达式就能搞定,代码如下:
return any(x in a for a in array)
为什么这行代码可行?
any()函数会遍历传入的可迭代对象(这里是生成器x in a for a in array),只要遇到第一个为True的元素就立刻返回True,和你原来的循环逻辑完全对齐- 如果遍历完所有元素都没找到匹配项,
any()就会返回False,正好对应原代码最后的return False
实际示例验证
比如你的列表是array = ["hello world", "python code", "stack exchange"],目标字符串x = "python":
array = ["hello world", "python code", "stack exchange"] x = "python" print(any(x in a for a in array)) # 输出: True
如果x是"java",就会输出False,和原代码的运行结果完全一致。
内容的提问来源于stack exchange,提问作者daiyue
相关产品推荐
相关产品推荐

