11月6日排序函数,匿名函数,回调函数,递归函数, zip函数


#####
排序sort, sorted的区别:
list.sort(func=None, key=None, reverse=False(or True))
对于reverse这个bool类型参数,当reverse=False时:为正向排序;当reverse=True时:为方向排序。默认为False。
执行完后会改变原来的list,如果你不需要原来的list,这种效率稍微高点
>>> list = [2,8,4,6,9,1,3]
>>> list.sort()
>>> list
[1, 2, 3, 4, 6, 8, 9]

第二种:内建函数sorted()
这个和第一种的差别之处在于:
sorted()不会改变原来的list,而是会返回一个新的已经排序好的list
list.sort()方法仅仅被list所定义,sorted()可用于任何一个可迭代对象
该函数也含有reverse这个bool类型的参数,当reverse=False时:为正向排序(从小到大);当reverse=True时:为反向排序(从大到小)。当然默认为False。
>>> list = [2,8,4,1,5,7,3]
>>> other = sorted(list)
>>> other
[1, 2, 3, 4, 5, 7, 8]
#####

匿名函数:lambda
回调函数: callback


递归函数:在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
函数的调用通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出,解决递归调用栈溢出的方法是通过尾递归优化,
尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。
栈溢出就是缓冲区溢出的一种

zip函数是将两个列表转换为字典的形式:
keys = ['a', 'b', 'c']
values = [1, 2, 3]
dictionary = dict(zip(keys, values))
print(dictionary)
"""
输出:
{'a': 1, 'c': 3, 'b': 2}
"""

猜你喜欢

转载自blog.csdn.net/qq_40994972/article/details/83903725