python函数参数中的elem是什么意思?

#!/usr/bin/python

# 获取列表的第二个元素
def takeSecond(elem):
return elem[1]

# 列表
random = [(2, 2), (3, 4), (4, 1), (1, 3)]

# 指定第二个元素排序
random.sort(key=takeSecond)

# 输出类别
print ('排序列表:', random)

这里的elem是什么意思?为什么引用takeSecond的时候不用传参?

elem可以是任何一个具有切片方法的对象,例如列表、元组、字符串
list.sort方法可以传递一个key参数表示排序依据,这个参数必须是一个接受一个位置参数的callable对象,例如拥有一个参数的函数。sort方法会调用此函数并逐一传递列表中的元素作为此函数的参数,然后接收函数的返回值作为该元素的权重,最后将元素按照权重由小到大排序。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-16
这个是系统自动的迭代操作。不是不用传参,是系统自动传递了一个参数给它
random 是一个迭代对象,每一次迭代释放一个元素,
takeSecond(2,2) 返回(2)
takeSecond(3,4) 返回(4)
takeSecond(4,1) 返回(1)
takeSecond(1,3) 返回(3)
l列表就参照(2,4,1,3)来排序
相似回答