我有代码检查类的属性以及预定的字符串是否在字符串或列表中,如下所示:
if (self.name in event and 'AL' in event) or (self.name in event and 'FH' in event)
我想知道是否有一种更优雅的方式来组合这些,所以我不必为两种情况输入两次“事件”。显然不是什么大不了的事,但我总是在市场上让事情变得更加性感。
答案 0 :(得分:4)
您可以将表单(x && y) || (x && z)
的表达式简化为x && (y || z)
形式。因此,您可以将表达式编写为:
if self.name in event and ('AL' in event or 'FH' in event):
#...
答案 1 :(得分:3)
您可以从子表达式中分解self.name in event
组件,并使用any()
迭代其他名称。
if self.name in event and any(it in event for it in ['AL', 'FH', ...]):
...
(免责声明:这是未经测试的,如果您获得与原始版本相同的结果,请仔细检查。)