检查列表/字符串中多个项目的成员资格的详细方法较少?

时间:2013-01-08 23:56:39

标签: python

我有代码检查类的属性以及预定的字符串是否在字符串或列表中,如下所示:

if (self.name in event and 'AL' in event) or (self.name in event and 'FH' in event)

我想知道是否有一种更优雅的方式来组合这些,所以我不必为两种情况输入两次“事件”。显然不是什么大不了的事,但我总是在市场上让事情变得更加性感。

2 个答案:

答案 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', ...]):
    ...

(免责声明:这是未经测试的,如果您获得与原始版本相同的结果,请仔细检查。)