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

如何在Python中初始化n×n布尔列表?解决类型不符问题

在Python中初始化n×n布尔列表的正确方法

你的代码创建的是元素为整数0的二维列表,而非布尔类型列表;另外type(result_list)输出list是正常的——因为外层结构本身就是列表,你需要关注的是列表元素的类型,而非外层容器的类型。

正确的初始化方式

要创建元素为布尔类型(bool)的n×n二维列表,直接使用布尔值False或True替代整数0/1即可,以下是两种可靠的写法:

方法1:列表乘法+推导式(高效简洁)

n = 5
result_list = [[False] * n for _ in range(n)]
# 验证元素类型
print(type(result_list[0][0]))  # 输出: <class 'bool'>

注意:不要写成[[False]*n]*n,这种写法会导致所有子列表指向同一个对象,修改其中一个子列表的元素会影响所有子列表。

方法2:嵌套列表推导式(更灵活)

如果需要动态生成每个布尔值(比如根据条件初始化),可以用嵌套推导式:

n = 5
result_list = [[False for _ in range(n)] for _ in range(n)]

你的代码问题修正

如果坚持用0来初始化,需要显式转换为布尔类型:

n = 5
result_list = [[bool(0)] * n for _ in range(n)]
# 此时元素类型为bool,bool(0)等价于False

内容的提问来源于stack exchange,提问作者Rajesh P S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:35:16