Almost0529 2024-01-08 12:26 采纳率: 100%
浏览 11
已结题

列表使用remove函数出现奇怪的报错

#列表使用remove函数出现奇怪的报错
使用列表储存numpy数组时,出现只能remove第一个数组,不能移除其他的。同样都是numpy数组。
##示例代码

k = [np.array([10, 10]), np.array([9, 7])]
print(k[0],type(k[0]))
print(k[1],type(k[1]))
k.remove(k[1])
print(k)

##输出结果

[10 10] <class 'numpy.ndarray'>
[9 7] <class 'numpy.ndarray'>
Traceback (most recent call last):
  File "D:\python-learn\math\test01.py", line 47, in <module>
    k.remove(k[1])
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

##如果改成remove k[0]就不报错

k = [np.array([10, 10]), np.array([9, 7])]
print(k[0],type(k[0]))
print(k[1],type(k[1]))
k.remove(k[0])
print(k)

##正常输出

[10 10] <class 'numpy.ndarray'>
[9 7] <class 'numpy.ndarray'>
[array([9, 7])]

感觉就很莫名其妙,同样都是存的numpy数组,为啥第一个就可以remove,其他的就不行!

  • 写回答

3条回答 默认 最新

  • 虫虫仙人 2024-01-08 13:20
    关注

    对于numpy类型数据不推荐使用remove来删除数据
    因为它存在一些不确定真值
    一般使用列表推导构建新列表

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月16日
  • 已采纳回答 1月8日
  • 创建了问题 1月8日