删除的对象仍在列表中

时间:2018-12-04 10:44:26

标签: python list object

我有一个包含列表作为属性的类,我需要能够通过从列表中删除特定项目来清理列表。

我有以下代码,该代码首先从csv文件加载数据,然后为每行数据创建一个Annotation对象,并将其附加到类clean_data_list上。

然后我想根据clean_data_list函数的作用user_idremove_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()

0 个答案:

没有答案