插件窝 干货文章 如何高效判断多个值是否同时为空或非空?

如何高效判断多个值是否同时为空或非空?

所有 values value 判断 161    来源:    2025-03-11

在编程中,判断多个值是否同时为空或非空是一个常见的需求。以下是几种高效的方法,适用于不同的编程语言和场景:

1. 使用逻辑运算符

在大多数编程语言中,可以使用逻辑运算符(如 &&||)来组合多个条件。

判断所有值都为空

if not value1 and not value2 and not value3:
    print("所有值都为空")

判断所有值都非空

if value1 and value2 and value3:
    print("所有值都非空")

2. 使用 all()any() 函数(适用于Python)

Python 提供了 all()any() 函数,可以更简洁地判断多个值是否同时为空或非空。

判断所有值都为空

values = [value1, value2, value3]
if all(not v for v in values):
    print("所有值都为空")

判断所有值都非空

values = [value1, value2, value3]
if all(v for v in values):
    print("所有值都非空")

3. 使用集合(适用于Python)

如果值的类型是可哈希的(如字符串、数字等),可以使用集合来判断。

判断所有值都为空

values = {value1, value2, value3}
if values == {None}:
    print("所有值都为空")

判断所有值都非空

values = {value1, value2, value3}
if None not in values:
    print("所有值都非空")

4. 使用 filter() 函数(适用于Python)

filter() 函数可以过滤出非空值,然后通过比较长度来判断。

判断所有值都为空

values = [value1, value2, value3]
if len(list(filter(None, values))) == 0:
    print("所有值都为空")

判断所有值都非空

values = [value1, value2, value3]
if len(list(filter(None, values))) == len(values):
    print("所有值都非空")

5. 使用 reduce() 函数(适用于Python)

reduce() 函数可以逐步应用逻辑运算符。

判断所有值都为空

from functools import reduce
values = [value1, value2, value3]
if reduce(lambda x, y: x and not y, values, True):
    print("所有值都为空")

判断所有值都非空

from functools import reduce
values = [value1, value2, value3]
if reduce(lambda x, y: x and y, values, True):
    print("所有值都非空")

6. 使用 every()some() 方法(适用于JavaScript)

在 JavaScript 中,可以使用 every()some() 方法。

判断所有值都为空

const values = [value1, value2, value3];
if (values.every(v => !v)) {
    console.log("所有值都为空");
}

判断所有值都非空

const values = [value1, value2, value3];
if (values.every(v => v)) {
    console.log("所有值都非空");
}

7. 使用 Stream API(适用于Java)

在 Java 中,可以使用 Stream API 来判断。

判断所有值都为空

List<Object> values = Arrays.asList(value1, value2, value3);
if (values.stream().allMatch(Objects::isNull)) {
    System.out.println("所有值都为空");
}

判断所有值都非空

List<Object> values = Arrays.asList(value1, value2, value3);
if (values.stream().allMatch(Objects::nonNull)) {
    System.out.println("所有值都非空");
}

总结

选择哪种方法取决于你使用的编程语言和具体的应用场景。在 Python 中,all()any() 函数通常是最简洁和高效的选择。在 JavaScript 中,every()some() 方法非常方便。在 Java 中,Stream API 提供了强大的功能来处理集合。