在Python中查看围绕特定值的+/范围的优雅方式

2024-09-29 19:19:46 发布

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

我正在使用openpyxl库处理电子表格中的大量数据。你知道吗

我需要找到特定的温度值,然后根据这个温度观察其他细胞。你知道吗

问题是我的体温在测量中有点波动,但我并不关心这个。你知道吗

举个例子,如果我想看25度外的数据,我真正想要的是24-26度范围内的数据。我需要在不同的温度下这样做。你知道吗

我知道如何以这样一种相当混乱的迭代方式来做:

for num in [5,10,15,20,25]:     
    if temp > num -1 and temp < num + 1:        
        #do things

但这让我觉得很混乱,有没有更干净的方法呢?比如检查temp是否在num的某个误差范围内?你知道吗


Tags: and数据inforif方式温度temp
3条回答

内置解决方案怎么样?您可以只使用^{}中的^{}函数(从Python 3.5开始提供):

from math import isclose

isclose(26, 25, abs_tol=1)
Out[409]: True

isclose(24, 25, abs_tol=1)
Out[410]: True

isclose(26.3, 25, abs_tol=1)
Out[411]: False

表示绝对容限(即差)的abs_tol,以便两个数被认为接近,而isclose返回True。你知道吗

现在您已经清楚了;Python允许您像这样链接比较:

for num in [5,10,15,20,25]:     
    if num - 1 <= temp <= num + 1:        
        #do things

另一种选择是检查两者之间的绝对值:

for num in [5, 10, 15, 20, 25]:
    if abs(num - temp) <= 1

(如果temp是整数,则需要使用<=而不是<,以使表达式不同于简单的temp == num。)

如果你只是想调整一下现有的东西:

for num in range(5, 30, 5):
    if abs(temp - num) < 1:
        # do things

相关问题 更多 >

    热门问题