Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sorted()在windows系统上获取语法错误_Python_Python 3.x - Fatal编程技术网

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

Python sorted()在windows系统上获取语法错误,python,python-3.x,Python,Python 3.x,我通过youtube学习并复制了这段代码,自己尝试,但无法复制结果,我使用windows系统和Atom编写代码,观看的视频是使用MAC系统和sublime,这会让它有所不同吗 s_employees=sorted[employees,key=attrgetter'age'] ^ SyntaxError:无效语法 [在0.141s中完成]更改为s_employees=sortedemployees,key=attrgetter'age'在花式attrgetter语法糖之前,让我们尝试一下: cla

我通过youtube学习并复制了这段代码,自己尝试,但无法复制结果,我使用windows系统和Atom编写代码,观看的视频是使用MAC系统和sublime,这会让它有所不同吗

s_employees=sorted[employees,key=attrgetter'age'] ^ SyntaxError:无效语法 [在0.141s中完成]

更改为s_employees=sortedemployees,key=attrgetter'age'

在花式attrgetter语法糖之前,让我们尝试一下:

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)
接下来,您可以将lambda调用替换为:

s_employees = sorted(employees, key = lambda employee: employee.age)
尽管如此,我还是会重写Employee类以使用/继承collections.namedtuple


函数调用使用foo…,而不是foo[…]。投票结束,因为简单的印刷错误。它的括号用于分类的员工,key=attrgetter'age'wow!谢谢我真不敢相信我犯了这个错误!
from operator import attrgetter
s_employees = sorted(employees, key = attrgetter('age'))
from collections import namedtuple
Employee = namedtuple("Employee",("name", "age", "salary"))