因此,我做了下面的類,並將它的實例存儲在列表中。python-如何刪除基於其數據成員的列表中的對象
class Word:
def __init__(self,word,definition,synonyms):
self.w=word
self.defi=definition
self.synonyms=synonyms
我敢肯定,我可以通過列表循環和檢查每個實例,但我試圖這樣做,用列表的remove方法。 x是Word的一個對象列表
word="hi"
x.remove(Word if Word.w==word)
這給了我一個錯誤。那麼有沒有類似的方式來做到這一點?
編輯 我試圖簡化我的問題,但顯然我的意圖不明確。 我有一個字典,其中的鍵是最後2個字母(用戶添加),其值是與這兩個最後字符的單詞列表。例如:
w1=Word("lengthen","make something taller","some synonym")
w2=Word("woken","let someone wake up","some synonym")
w3=Word("fax","machine used for communication","some synonym")
w4=Word("wax","chemical substance","some synonym")
['en':(w1,w2),'ax':(w3,w4)]
我試圖定義一個方法刪除內搭字典和一個字(字符串),那麼它會刪除含有下列字的對象的字。
def delete(dictionary,word):
if word[-2:] in dictionary:
x=dictionary[word[-2:]]
if(x.count(word)!=0):
x.remove(Word if Word.w==word)
原因之一'刪除()'ISN」對於你所要做的工作是因爲你的字典中的值是'tuple's,而不是'list',並且元組沒有'remove()'方法,因爲它們是不可變的。您需要更改值的類型或用新的元組對象替換現有的值。 – martineau