gpt4 book ai didi

python - 有没有更好的方法在 Python 中编写连续的 "or"语句?

转载 作者:IT老高 更新时间:2023-10-28 20:32:04 27 4
gpt4 key购买 nike

我自己找不到任何“好”答案的简单问题:

假设我有以下条件:

if 'foo' in mystring or 'bar' in mystring or 'hello' in mystring:
# Do something
pass

or 语句的数量视情况而定。

在不牺牲性能的情况下,有没有“更好”(更 Pythonic)的写法?

如果考虑使用 any() 但它需要一个类似 bool 元素的列表,所以我必须先构建该列表(在此过程中放弃短路评估),所以我想它的效率较低。

非常感谢。

最佳答案

一种方法

if any(s in mystring for s in ('foo', 'bar', 'hello')):
pass

你迭代的东西是一个元组,它建立在函数的编译之上,所以它不应该逊于你的原始版本。

如果你担心元组会变得太长,你可以这样做

def mystringlist():
yield 'foo'
yield 'bar'
yield 'hello'
if any(s in mystring for s in mystringlist()):
pass

关于python - 有没有更好的方法在 Python 中编写连续的 "or"语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11189793/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com