如何处理条件中的众多元素?

时间:2014-07-25 09:45:45

标签: python

我有时需要在条件中使用许多元素,所有元素都是同一种

args = list()
if "a" not in args or "b" not in args or "c" not in args:
    print("something is missing")

当要测试的元素数量变大时,这变得复杂。我试图将它们组合在一个列表中,但最终结果很难看:

args = list()
for what in ["a", "b", "c"]:
    if what not in args:
        print("something is really missing")
        break

编码这种情况的pythonic方法是什么(几个组件,都是if)?

2 个答案:

答案 0 :(得分:1)

执行此操作的典型方法是使用all

if not all(arg in args for arg in ("a", "b", "c")):

另外,请考虑提出错误,而不是打印消息。

答案 1 :(得分:0)

使用集合将起作用:

args = list(....)
if set(["a","b","c"]).issubset(args):
    print("something is really missing")

如果排序无关紧要,这是有效的 - 即a,b,c可以args中的任何顺序存在,并且如果args中有其他东西(a,b,c除外)