sorted() 在 Windows 系统上获取语法错误


class Employee():
def __init__(self, name, age, salary):
self.name = name
self.age = age
self.salary = salary
def __repr__(self):
return '({},{},${})'.format(self.name, self.age, self.salary)

from operator import attrgetter
e1 = Employee('Carl', 37, 70000)
e2 = Employee('Kevin', 30, 80000)
e3 = Employee('Rose', 25, 90000)
employees = [e1, e2, e3]
s_employees = sorted[employees, key = attrgetter('age')]
print(s_employees)

我正在通过youtube学习并复制此代码自己尝试,但无法复制结果,我正在使用Windows系统和Atom编写代码,观看的视频使用的是MAC系统,崇高是否使其与众不同?

s_employees = 排序[员工,键 = attrgetter('age'(] ^ 语法错误:语法无效 [在0.141秒内完成]

更改为s_employees = sorted(employees, key=attrgetter('age'))

在花哨的attrgetter句法糖之前,让我们试试这个:

s_employees = sorted(employees, key = lambda employee: employee.age)

接下来,您可以将 lambda 调用替换为:

from operator import attrgetter
s_employees = sorted(employees, key = attrgetter('age'))

虽然,我也会重写您的Employee类以使用/继承collections.namedtuple.

from collections import namedtuple
Employee = namedtuple("Employee",("name", "age", "salary"))

相关内容

最新更新