gpt4 book ai didi

python - 组合复合条件

转载 作者:太空宇宙 更新时间:2023-11-04 08:38:15 24 4
gpt4 key购买 nike

我尝试重构复合条件

if not foo in categories and not foo.capitalize() in categories:

像这样的代码

if not foo and foo.capitalize() in categories:

没用。

最佳答案

所以你知道这是可行的:

if not foo in categories and not foo.capitalize() in categories:

它解析为(not (foo in categories)) and (not (not (foo.capitalize() in categories)),即

  • foo 不在类别中,并且
  • foo.capitalize() 不在类别中。

由于解析总是以相同的方式工作并且不会猜测您最有可能的意思,因此您修改后的语句

if not foo and foo.capitalize() in categories:

被解析为(not foo) and (foo.capitalize() in categories),即

  • foo 不是,并且
  • foo.capitalize() 在类别中

在 Python 中更简洁的写法是使用 x not in y 而不是 not x in y(它们是等价的):

if foo not in categories and foo.capitalize() not in categories:

但就在这里用简短的方式表达“两者都不是”而言……除了集合运算符之外没有太多内容:

if not {foo, foo.capitalize()}.intersection(categories):

如果 categories 也是一个集合,则简写:

if not {foo, foo.capitalize()} & categories:

请注意它并没有更短,而且更难理解。

关于python - 组合复合条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47029740/

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