如何按值从列表中删除对象

复位器

我的问题是我创建了一个带有姓名和编号的学生列表。现在的任务是按学生的编号删除学生。我的问题是我的代码不起作用。

另一个问题是它总是显示内存地址而不是对象的值。

提前致谢

班级学生:

def __init__(self, name, number):
    self.name = name
    self.number = number

from .student 导入学生类课程:

def __init__(self, name, code, credit, student_limit):
    self.name = name
    self.code = code
    self.credit = credit
    self.student_limit = student_limit

students = []
def add_student(self, new_student):
    self.student = new_student
    self.students.append(new_student)
    print("Student added" +str(self.students))

def remove_student_by_number(self, student_number):
    self.student_number = student_number
    if student_number in self.students: self.students.remove(student_number)
    print("Student removed" + str(self.students))

from .course import 课程类部:

def __init__(self, name, code):
       self.name = name
       self.code = code

courses = []       
def add_course(self, course):
    self.course = course
    self.courses.append(course)
    print("Course added" +str(self.courses))

from python import * def main():

alice = Student("Alice", 1336)
bob = Student("Bob", 1337)

math_dept = Department("Mathematics and Applied Mathematics", "MAM")

math_course = Course("Mathematics 1000", "MAM1000W", 1, 10)

math_dept.add_course(math_course)

math_course.add_student(bob)
math_course.add_student(alice)

math_course.remove_student_by_number(alice.number)

if __name__ == "__main__":
main()
爆炸同性恋鱼

self.students是一个Student实例列表,因此如果__str__未实现该方法,它将打印实例的内存地址例如参见此处)。您应该尝试像student.namestudent.number显式地打印每个属性

无论如何,您正在尝试student_number在列表中查找Student因此它当然永远不会运行删除行。而是使用if student_number in [student.number for student in self.students]which 正在查找学生的编号列表,而不是学生列表本身。但是在这种情况下,您还想删除student_number作为输入的学生,因此您可能需要使用这样的循环:

def remove_student_by_number(self, student_number):
    for student in self.students:
        if student.number == student_number:
            print("Student removed" + str(student.name))
            self.students.remove(student)
            break

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从列表中删除某些值的对象?

来自分类Dev

如何按值从Redis列表中删除元素?

来自分类Dev

如何在Python中按值删除多个列表项

来自分类Dev

如何使用Circe删除对象列表中的空值

来自分类Dev

按索引值删除列表中的元素

来自分类Dev

按值从JSON对象中删除元素

来自分类Dev

如何使对象从列表中删除。

来自分类Dev

如何按值从数组中删除值

来自分类Dev

如何从列表内的列表中删除对象?

来自分类Dev

如何从对象列表中删除几个对象

来自分类Dev

如何在Python中的字典项列表中按值删除重复的字典项

来自分类Dev

如何按属性值从对象列表创建嵌套对象

来自分类Dev

如何使用猫鼬按特定值从数组中删除对象

来自分类Dev

如何按字典中列表的值排序

来自分类Dev

按对象属性从列表中删除重复项的最佳方法

来自分类Dev

Redux Reducer按名称从列表中删除对象

来自分类Dev

Redux Reducer按名称从列表中删除对象

来自分类Dev

Python - 按条件删除列表中的特定对象

来自分类Dev

我如何使用Linq在对象列表中按小时获取最大值

来自分类Dev

如何从对象列表项中删除填充?

来自分类Dev

如何从对象列表中删除重复项

来自分类Dev

如何从列表/数组中删除对象属性?

来自分类Dev

如何删除多个列表中存储的对象

来自分类Dev

如何从对象列表中删除重复项

来自分类Dev

如何删除列表中的字典(JSON 对象)?

来自分类Dev

如何从列表中删除重复的字典对象

来自分类常见问题

按值从KeyValuePair列表中删除重复项

来自分类Dev

Python:使用remove()按值从列表中删除元素

来自分类Dev

从 Common Lisp 的列表中按值删除重复项

Related 相关文章

热门标签

归档