请求解释一段关于字典的基本python代码



我想请你帮忙。我已经开始学习Python了,但我才刚刚开始。我从网站上获取了以下代码:

def take_second(elem):
  return elem[1]
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
take_second(random) # (3, 4)
sorted(random, key = take_second) # [(4, 1), (2, 2), (1, 3), (3, 4)]

问题是,我不知道它是如何工作的,它是如何根据函数take_second()排序的。我理解函数take_second()是如何工作的-它总是将元素放在第一个位置(索引= 1)。因此,对于变量random,它是一个列表,它是一个元组(3, 4)。这里问题开始了。接下来如何对变量random进行排序?

我很抱歉,这可能是非常容易的,但我已经考虑了一段时间,没有什么,认真的。

这里有人能帮我吗?我很感激。

假设你有一个常规的非嵌套列表

listy = [2,4,3,1]

那么当你对它运行sorted时,它会通过比较每个

元素来排序
listy = [1,2,3,4]

但是当你有像

这样的列表时
random = [(2, 2), (3, 4), (4, 1), (1, 3)]

你可能想要指定它应该如何排序。通过将函数take_second作为排序中的键,它允许计算机知道按什么对列表排序。在这种情况下,计算机将比较每个元素中的第二个值来确定顺序,正如您在输出中看到的那样,每个元组中的第二个值确实是1,2,3,4。

sorted(random, key = take_second) # [(4, 1), (2, 2), (1, 3), (3, 4)]