Python3:什么是比较一堆变量的有效方法,如果其中一个比较失败,X是否会做Y?

2024-03-28 10:08:35 发布

您现在位置:Python中文网/ 问答频道 /正文

假设您有10个v_t1, v_t2, v_t3, etc,阈值变量和10个当前值变量v_c1, v_c2, v_c3, etc,,所有阈值变量都包含整数,所有当前值都包含一个整数或一个“未找到”字符串。我需要将阈值与当前值进行比较。如果任何当前值变量大于阈值,我想运行function_a,否则运行function_b

我可以写出10个不同的if语句并检查它们的返回值,同时检查当前值是否包含“notfound”,但这似乎是错误的和低效的。有更好的办法吗?也许把两张单子比较一下?你知道吗


Tags: 字符串ifetcfunction阈值整数语句t1
2条回答

假设变量列表是v_list = [v_c1, v_c2, ...],阈值列表是t_list = [v_t1, v_t2, ...],您可以使用

if any(v != "Not found" and v > t for (v, t) in zip(v_list, t_list)):
    function_a()
else:
    function_b()

假设您有一个阈值列表和一个对应值列表,您可以使用namedtuple创建一个阈值-值对列表:

from collections import namedtuple
Pair = namedtuple('Pair', ['threshold', 'value'])
pairs = [Pair(t, v) for t, v in zip(thresholds, values)]

然后在两对上循环:

for pair in pairs:
    if pair.value != "Not found" and pair.value > pair.threshold:
        function_a()
    else:
        function_b()

相关问题 更多 >