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

Python报错TypeError:列表索引需为整数/切片而非元组,求解决

问题分析与解决

错误原因

你定义的x是Python原生列表,而[:,1]是NumPy数组专属的多维切片语法——原生列表不支持这种元组形式的索引,只能用整数或切片作为索引,所以会触发TypeError: list indices must be integers or slices, not tuple。

解决方案

方案1:用原生Python列表实现需求

遍历x的每个子元素,生成布尔掩码,再通过掩码筛选y的元素:

# 生成掩码:判断每个子列表的第二个元素是否为1
mask = [item[1] == 1 for item in x]
# 根据掩码筛选y中对应位置的元素
y_left = [y[i] for i, is_match in enumerate(mask) if is_match]

方案2:转为NumPy数组复用原代码逻辑

如果更习惯NumPy的数组操作,先把x和y转换成NumPy数组,就能直接用你原来的代码:

import numpy as np

# 将原生列表转为numpy数组
x_np = np.array(x)
y_np = np.array(y)

# 原代码逻辑可正常运行
mask = (x_np[:, 1] == 1)
y_left = y_np[mask]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:46:42