检查我有2所列出:上执行列表
main_voltages = [5.5, 15.7, 28.5]
limit_list = [[5,10], [15,20], [25,30]]
我必须进行检查,以查看是否5.5是在5至10的范围内,如果15.7是在15至20范围和28.5是范围为25到30. 我应该如何使它不发生任何硬编码?我对一些功能进行了许多思考,但无法得到确切的方法。
检查我有2所列出:上执行列表
main_voltages = [5.5, 15.7, 28.5]
limit_list = [[5,10], [15,20], [25,30]]
我必须进行检查,以查看是否5.5是在5至10的范围内,如果15.7是在15至20范围和28.5是范围为25到30. 我应该如何使它不发生任何硬编码?我对一些功能进行了许多思考,但无法得到确切的方法。
这是使用zip()
一个办法:
>>> main_voltages = [5.5, 15.7, 28.5]
>>> limit_list = [[5,10], [15,20], [25,30]]
>>> result = [b[0] <= a <= b[1] for (a, b) in zip(main_voltages, limit_list)]
>>> result
[True, True, True]
或者作为@ovgolovin指出的那样,你可以解压在limit_list
的元素,并做:
result = [a <= value <= b for (value, (a, b)) in zip(main_voltages, limit_list)]
1虽然我将解压B中孔(结果= [B [0] <= A <= B [1](A,B)在拉链意为' (main_voltages,limit_list)]' - >'result = [a <= value <= b for(value,(a,b))in zip(main_voltages,limit_list)]') – ovgolovin 2014-09-10 18:44:11
@ovgolovin同意。 – shaktimaan 2014-09-10 18:52:25
@shaktimaan很酷..谢谢 – tryPy 2014-09-10 22:09:39