Python报错TypeError: 'int' object is not subscribable的原因咨询
错误原因分析
核心问题:d被错误初始化为一维列表而非二维列表
你代码里的初始化逻辑存在致命问题:
d=[] for i in range(1,20): d=list(map(int, input().split()))
每次循环都会把d重新赋值为单次输入的一维整数列表,而非将每次输入的列表添加到d中。循环结束后,d仅保留最后一次输入的单行数据,是一个一维列表。
当后续执行d[j][y]时,d[j]取到的是列表中的某个整数元素,你试图对这个整数做下标访问([y]),自然会触发TypeError: 'int' object is not subscribable——因为整数类型不支持下标操作。
附带的其他逻辑问题
- Python列表索引从0开始,但你的循环使用
range(1,20),会跳过第一个元素(索引0),若d长度不足19还会触发索引越界错误。 - 代码中
else : d[j][y] ==0是比较操作,而非赋值,应改为d[j][y] = 0。 - 最后打印循环输出的是
x,而非d中的元素,逻辑完全错误。
内容的提问来源于stack exchange,提问作者goldtea
相关产品推荐
相关产品推荐

