【发布时间】:2014-08-02 13:57:18
【问题描述】:
我可以使用 lambda 函数循环遍历类对象列表并更改属性的值(对于所有对象或满足特定条件的对象)?
class Student(object):
def __init__(self,name,age):
self.name = name
self.age = age
student1 = Student('StudOne',18)
student2 = Student('StudTwo',20)
student3 = Student('StudThree',29)
students = [student1,student2,student3]
new_list_of_students = map(lambda student:student.age+=3,students)
【问题讨论】:
-
@Ned 'def change_age(student): student.age +=3 return student new_students_age_list = map(change_age,students)'
-
如您所知,lambda 不允许做作业。所以你必须在类中添加一个合适的方法并从 lambda 中调用它。如果你不能改变类,你总是可以在实例中添加一个方法并获得相同的效果
-
@pythondev 如果你这样做,那么
increased_students_age_list的内容与students完全相同。您有两个相同的列表,这没有意义。