You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas中~运算符使用疑惑:布尔列表取反触发TypeError如何解决?

问题解决:布尔列表用~取反报错的原因及解决方法

错误原因

Python的~是按位取反运算符,仅能对整数类型执行操作,无法直接作用于list对象,因此执行~mask时会触发TypeError: bad operand type for unary ~: 'list'。

正确的取反方法

方法1:列表推导式(原生Python最常用)

遍历列表中的每个布尔值,用not运算符逐个取反:

mask = [False, False, False, False, True, True, False]
neg_mask = [not b for b in mask]
# 结果:[True, True, True, True, False, False, True]

方法2:使用numpy数组(适合数值计算场景)

如果是数据处理场景,可借助numpy布尔数组——numpy重载了~运算符,支持直接对数组取反:

import numpy as np
mask = [False, False, False, False, True, True, False]
mask_np = np.array(mask)
neg_mask = ~mask_np
# 结果:array([ True,  True,  True,  True, False, False,  True])

方法3:map函数

用map配合匿名函数批量处理列表元素:

mask = [False, False, False, False, True, True, False]
neg_mask = list(map(lambda x: not x, mask))
# 结果:[True, True, True, True, False, False, True]

内容的提问来源于stack exchange,提问作者DDogu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 22:27:25