[英]int() argument must be a string or a number, not 'generator'
我遇到了兩個錯誤,我認為這是由於我對類的濫用,但我不知道如何解決這個問題......
我得到:
AttributeError:有機體實例沒有屬性“刪除”
或者
int() 參數必須是字符串或數字,而不是“生成器”
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”是一個對象列表
"organisms[0].vector" : 列表第一個對象的向量
一個向量看起來像這樣 [1,0,1,1...]
非常感謝你的幫助 !
你的錯誤是:
這符合organisms[j].remove(organisms[j].vector[i])
在這里,似乎organisms[j]
其是organism
還沒有remove()
方法。 您可能想從organisms[j].vector
刪除元素organisms[j].vector[i]
:
organisms[j].vector.remove(organisms[j].vector[i])
這是由於行:
organisms[j].vector[i] = int(organisms[j].vector[i])
您確定organisms[j].vector[i]
是數字/字符串嗎?。 您可以嘗試打印它並查看它是否確實是數字/字符串嗎?
以下是需要注意的事項:
錯誤 1:
生物體[j].vector[i]的類型是什么? 從錯誤消息來看,它似乎是一個生成器,因此沒有轉換為 int。
錯誤 2:
你的有機體類是什么樣的?
從行:
organisms[j].remove(organisms[j].vector[i])
我認為這會導致您的第二個錯誤。 您的 Organism 類沒有名為“remove”的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.