我有一个包含列表作为属性的类,我需要能够通过从列表中删除特定项目来清理列表。
我有以下代码,该代码首先从csv文件加载数据,然后为每行数据创建一个Annotation
对象,并将其附加到类clean_data_list
上。
然后我想根据clean_data_list
函数的作用user_id
从remove_users
删除特定用户。
然后,我使用了check
函数来检查是否确实删除了用户,但是每次我运行以下代码时,check
函数总是会打印失败。
我真的不明白发生了什么,看来remove
方法没有达到我的期望?
class SomeClass:
clean_data_list = []
def load_annotations_from_csv(self):
with open('collected data/raw annotation list.csv', "r") as f:
reader = csv.reader(f)
datalist = list( reader )
return datalist
def append_semantic_annotations(self,datalist):
for annotation in datalist:
an = Annotation(annotation[0],annotation[1],annotation[2])
self.clean_data_list.append(an)
def remove_users(self):
trash =[111]
for annotation in self.clean_data_list:
if annotation.user_id in trash:
self.clean_data_list.remove(annotation)
def check(self):
trash =[111]
for annotation in self.clean_data_list:
if annotation.user_id in trash:
print('fail')
t = SomeClass()
data = t.load_annotations_from_csv()
t.append_semantic_annotations(data)
t.remove_users()
t.check()