你们怎么写那么复杂?
Topic source- t是参数名,起这个名字只是方便理解,这里理解为tuple,因为
L
这个list
的每一个元素是一个tuple
。不是tuple也能这样用啊(不信你试试L=[['Bob', 75], ['Adam', 92], ['Bart', 66], ['Lisa', 88]]
) 。L[0]
不就是把L
的第一个元素打出来嘛。。题中所给L
的元素是tuple
只是为了防止改动吧,你去看看之前的使用list和tuple
这一节不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
- 你要知道这篇教程还是在
高阶函数
这一节里面的,也就是说可以根据MapReduce
以及filter
来理解。 举个栗子,一开始廖老师也讲了
sorted([36, 5, -12, 9, -21], key=abs)
key
指定的函数abs
将作用于list
的每一个元素上,key
指定的函数abs
将作用于list
的每一个元素上,key
指定的函数abs
将作用于list
的每一个元素上, 然后根据每个元素的大小或者字符的ASCII值排序层主的代码是省略版的,完整的就是这样
L=[('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def sort_by_name(t):
return t[0]
def sort_by_score(t):
return t[1]
print(sorted(L, key=sort_by_name))
print(sorted(L, key=sort_by_score, reverse=1))
也就是首先把sort_by_name
作用于list
的每一个元素上,根据返回的结果['B','A','B','L']
再来排序,不过有两个'B'
, 那就要回去再做一次
- 反正最后得到的结果是
[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
[('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)]
回复楼上,t[1]对应的是数字,你可以运行代码确认
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
for t in L:
print(t[0])
print(t[1])
楼上,
reverse=1 或者 reverse=True 表明我要列表倒序
reverse=False 是默认参数
你可以在 Python 交互式界面里面打
>>> help(sorted)
来看
Help on built-in function sorted in module builtins:
sorted(iterable, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customise the sort order, and the
reverse flag can be set to request the result in descending order.
- 1
- 2
Dreamer_DK
作业1:
作业2
就算还有大小写错位,题1加上一句改成
就行了吧?