Discuss / Python / 和之前的题目比简单多了

和之前的题目比简单多了

Topic source

第一题

# -*- coding:utf-8 -*-
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_name(t):
    return t[0].lower()
L2 = sorted(L, key=by_name)
print(L2)

第二题

# -*- coding:utf-8 -*-
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_score(t):
    return t[1]
L2 = sorted(L, key=by_score,reverse=True)
print(L2)

新人想问下,为什么这里写t[0]是代表list里面三个tuple的第一个元素呢?这里不应该是个二维的数组嘛,不应该是t[x][0]?

好吧,无意间瞟到了楼下的理解,才明白原来这里key函数作用于L中的元素,也就是说t代表的是三个(),所以t[0]代表的才是()中的第一个元素名字。


  • 1

Reply