Python list.append()传3参数报错 如何追加多元素生成嵌套列表
Python调用list.append()传入多个参数触发TypeError的解决方案
报错原因
Python原生列表的append()方法仅支持接收1个位置参数,作用是将传入的这一个参数作为整体追加到列表末尾。直接传入X_test[i]、y_test[i]、y_pred[i]三个独立参数,不符合方法的参数定义,因此触发TypeError。
逐行打印三个值可正常输出,说明三个变量本身取值、索引遍历逻辑均无问题,仅需调整append的传参方式即可实现需求。
正确实现方法
你需要先把每组的3个值封装为单个列表对象(也就是你需要的子列表结构),再传入append(),最终就能得到「每组三个值组成子列表」的二维嵌套列表。
写法1:适配原有循环逻辑
改动最小,直接修改原循环内的append调用即可:
d = [] for i in range(len(X_test)): # 将三个元素封装为1个子列表,作为单个参数传入append d.append([X_test[i], y_test[i], y_pred[i]])
写法2:列表推导式(更简洁)
如果循环内不需要添加其他处理逻辑,可以直接用列表推导式一步生成目标嵌套列表:
d = [[X_test[i], y_test[i], y_pred[i]] for i in range(len(X_test))]
补充:如果后续不需要修改每组内的三个值,也可以把三个值封装为元组传入,内存占用更低,写法为
d.append((X_test[i], y_test[i], y_pred[i]))。
内容的提问来源于stack exchange,提问作者Sohan JS
相关产品推荐
相关产品推荐

