##### 排序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} """