我遇到两个错误,我认为这是因为我滥用了这些错误,但我无法弄清楚如何解决这个错误......
我明白了:
AttributeError:生物实例没有属性'remove'
或
int()参数必须是字符串或数字,而不是'generator'
def filtre_vecteurs(organisms):
nb_organisms = len(organisms)
vector_size = len(organisms[0].vector)
for i in range(vector_size):
tmp = 0
for j in range(nb_organisms):
organisms[j].vector[i] = int(organisms[j].vector[i])
tmp += organisms[j].vector[i]
if tmp == nb_organisms :
for j in range(0, nb_organisms):
organisms[j].remove(organisms[j].vector[i])
return organisms
“有机体”是一个对象列表
“organisms [0] .vector”:列表第一个对象的向量
向量看起来像[1,0,1,1 ...]
非常感谢你的帮助!
答案 0 :(得分:0)
您的错误是:
这是organisms[j].remove(organisms[j].vector[i])
行
在这里,似乎organisms[j]
organism
没有remove()
方法。您 可能 想要从organisms[j].vector[i]
中移除元素organisms[j].vector
:
organisms[j].vector.remove(organisms[j].vector[i])
这是由于行:
organisms[j].vector[i] = int(organisms[j].vector[i])
您确定organisms[j].vector[i]
是数字/字符串吗?你能尝试打印它,看看它是否确实是一个数字/字符串?
答案 1 :(得分:-1)
以下是需要注意的事项:
错误1:
生物的类型是什么[j] .vector [i]?从错误消息中,它看起来好像是一个生成器,因此没有转换为int。
错误2:
你的有机体类是什么样的?
从行:
organisms[j].remove(organisms[j].vector[i])
我认为会导致你的第二个错误。您的Organism类没有名为'remove'的方法。