Python多列表对应元素条件判断生成输出数组咨询
实现思路与代码示例
核心思路
要生成目标输出数组,关键是遍历三个传感器列表的对应元素,对每一组(夏季、秋季、冬季)读数执行指定的条件判断,将结果逐个收集到列表中。由于三个列表长度一致,可通过zip()函数快速配对对应位置的元素。
基础实现代码
# 传感器读数列表 summer = [92, 99, 86] autumn = [91, 98, 82] winter = [93, 96, 83] output = [] # 遍历每组对应元素 for s, a, w in zip(summer, autumn, winter): if s >= 90 and a >= 90 and w >= 90: output.append(1) elif s >= 90 and a >= 90 and w >= 70: output.append(2) elif s >= 50 and a >= 50 and w >= 50: output.append(3) else: output.append(4) print(output) # 输出: [1, 1, 3]
代码关键点解释
zip(summer, autumn, winter):将三个列表的同位置元素打包成元组,每次循环取出一组夏季、秋季、冬季的读数。- 条件判断顺序:严格按照给定的优先级执行,一旦满足某个条件就停止后续判断,确保结果符合预期。
output.append():将每组判断的结果添加到输出列表,最终得到目标数组。
进阶简洁写法(列表推导式)
如果想让代码更紧凑,可以用Python的列表推导式实现:
summer = [92, 99, 86] autumn = [91, 98, 82] winter = [93, 96, 83] output = [ 1 if s >= 90 and a >= 90 and w >= 90 else 2 if s >= 90 and a >= 90 and w >= 70 else 3 if s >= 50 and a >= 50 and w >= 50 else 4 for s, a, w in zip(summer, autumn, winter) ] print(output) # 输出: [1, 1, 3]
这种写法将循环和条件判断整合到一行,逻辑清晰且代码更简洁,适合这类规则明确的场景。
内容的提问来源于stack exchange,提问作者samreet
相关产品推荐
相关产品推荐

