Fie*_*n21 18 python sorting attributes dictionary
我想以属性排序方式迭代对象字典
import operator
class Student:
def __init__(self, name, grade, age):
self.name = name
self.grade = grade
self.age = age
studi1 = Student('john', 'A', 15)
studi2 = Student('dave', 'B', 10)
studi3 = Student('jane', 'B', 12)
student_Dict = {}
student_Dict[studi1.name] = studi1
student_Dict[studi2.name] = studi2
student_Dict[studi3.name] = studi3
for key in (sorted(student_Dict, key=operator.attrgetter('age'))):
print(key)
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误信息:"AttributeError:'str'对象没有属性'age'"
dug*_*res 16
for student in (sorted(student_Dict.values(), key=operator.attrgetter('age'))):
print(student.name)
Run Code Online (Sandbox Code Playgroud)
>>> for key in sorted(student_Dict, key = lambda name: student_Dict[name].age):
... print key
...
dave
jane
john
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24960 次 |
| 最近记录: |