gpt4 book ai didi

python - 编写条件语句的更简单方法

转载 作者:太空狗 更新时间:2023-10-30 01:50:59 24 4
gpt4 key购买 nike

有没有更漂亮的方法来编写这个 if 语句:

if not (self.is_legal(l) or self.is_legal(u) or self.is_legal(r) or self.is_legal(d)):

我已经试过了,但是没用。

if not self.is_legal(l or r or d or u):

或者也许第一个是最漂亮的?

最佳答案

您可以使用 any和一个 generator expression :

if not any(self.is_legal(x) for x in (l, u, r, d)):

或者,如果您喜欢 all而不是 any:

if all(not self.is_legal(x) for x in (l, u, r, d)):

虽然第一个解决方案看起来更好一些。


至于为什么您尝试的解决方案不起作用,Python 中的 or 运算符并不像您认为的那样运行。来自docs :

The expression x or y first evaluates x; if x is true, its value is returned; otherwise, y is evaluated and the resulting value is returned.

因此,self.is_legal(l or r or d or u) 只是将第一个真值传递给 self.is_legal 方法,而不是所有的值。

关于python - 编写条件语句的更简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29449985/

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