首页 > 解决方案 > 从字典中的列表创建表和排序数据

问题描述

我有一本包含列表的字典

    students = {
1:["name1", 20, 100],
2:["name2", 20, 100],
3:["name3", 20, 95],
4:["name4", 21, 65],
5:["name5", 22, 85]
}

我想创建表并按名称对数据进行排序。像这样

Name        Age       Score
name1       20        100
name2       20        100
name3       20        95
name4       21        65
name5       22        85

我怎样才能做到这一点?我是这样写的:

students = {
1:["Rauf", 20, 100],
2:["Shafag", 20, 100],
3:["Ali", 20, 95],
4:["Camal", 21, 65],
5:["Arzu", 22, 85]

}
print(" ")
print("{:>12} {:>12} {:>12}".format('Name','Age','Score'))
print(" ")
for v in students.values():
    name, age, score = v
    print(sorted(("{:>12} {:>12} {:>12}".format(name, age, score)), key= lambda v: v[2]))

标签: pythonpython-3.xlistsortingdictionary

解决方案


这有帮助吗

import operator
students = {
1:["Rauf", 20, 100],
2:["Shafag", 20, 100],
3:["Ali", 20, 95],
4:["Camal", 21, 65],
5:["Arzu", 22, 85]

}
print(" ")
print("{:>12} {:>12} {:>12}".format('Name','Age','Score'))
sorted_students = sorted(students.items(), key=operator.itemgetter(1))
print(" ")
for v in sorted_students:
    name, age, score = v[1]
    print("{:>12} {:>12} {:>12}".format(name, age, score))

推荐阅读