有人能给我解释一下python代码中提到的一行的工作原理吗?

有人能给我解释一下python代码中提到的一行的工作原理吗?,python,python-3.x,python-2.7,set,Python,Python 3.x,Python 2.7,Set,请从下面的代码中解释这一行num\u to\u match=排序(设置(grades.values())[1] N = int(raw_input()) students = [] for i in range(2*N): students.append(raw_input().split()) grades = {} for j in range(0, len(students), 2): grades[students[j][0]] = float(students[j +

请从下面的代码中解释这一行num\u to\u match=排序(设置(grades.values())[1]

N = int(raw_input())

students = []
for i in range(2*N):
    students.append(raw_input().split())
grades = {}
for j in range(0, len(students), 2):
    grades[students[j][0]] = float(students[j + 1][0])
result = []
num_to_match = sorted(set(grades.values()))[1]
for pupil in grades.keys():
    if grades[pupil] == num_to_match:
        result.append(pupil)
for k in sorted(result):
    print k

您可以按如下方式断开该行以完全理解它:
num\u to\u match=sorted(set(grades.values())[1]

grades.values()
-返回dict
grades

set(grades.values())
-通过将列表转换为集合来删除重复条目

sorted(set(grades.values())
-返回从上面获得的排序集


sorted(set(grades.values())[1]
-从已排序的项目列表中选择第二个元素。

关于它,您不了解什么?“请向我解释[工作,由其他人编写]代码”的问题对堆栈溢出不好,因为我们无法读懂您的心思来知道该解释什么。