fanxing200
回答者
回答于 2026-10-20
绝对值不大于1的整数仅有三个:-1、0、1。数学上需同时满足两个条件:一是该数为整数,二是其绝对值小于或等于1。
Python实现方法
使用列表推导式,结合abs()函数计算绝对值,并用isinstance(x, int)确保元素为整数类型(排除浮点数):
data = [-3, -1.5, -1, 0, 0.8, 1, 2, 5]
result = [x for x in data if isinstance(x, int) and abs(x) <= 1]
print(result) # 输出: [-1, 0, 1]
若数据源本身已确认全为整数,可省略类型判断,直接写[x for x in data if abs(x) <= 1]。
Excel实现方法
假设待筛选数据位于A列(如A1:A100),可在B1单元格输入辅助公式:
=IF(AND(A1=INT(A1), ABS(A1)<=1), "符合", "")
向下填充后,对B列使用“筛选”功能,勾选“符合”即可提取目标值。
判断依据
- 整数判定:Python中使用
isinstance(x, int);Excel中使用A1=INT(A1),即原值与其取整结果相等。 - 绝对值判定:两者均使用内置的
ABS或abs函数求绝对值并与1比较。
适用条件
适用于需要对批量数值型数据进行规则过滤的场景,如数据清洗、异常值排查等。
常见误区
- 忽略整数限制:仅判断
abs(x) <= 1而未校验是否为整数,会将0.5、-0.9等小数误纳入结果。 - Excel中的布尔值干扰:在Excel中,TRUE和FALSE参与数值运算时分别等价于1和0,可能导致误判,建议先确保数据列为纯数值。
- 边界遗漏:绝对值“不大于”包含等于的情况,因此-1和1必须被保留,不可误用严格小于号。