递归/匿名函数/三元表达式/列表生成式/字典生成式/二分算法
2020-12-13 06:23
标签:生成 区间 for span img class 自定义函数 turn 截取 让在下揭开尔等的面纱,一探究竟:) 递归是一个往复的过程,也就是由两个过程组成,一个是计算过程,一个是将值层层返回的过程,递归的奇妙之处,就在于自身调用自身,然后,过程遵循由复杂到简单,最终满足相应条件后,退出,返回结果.说了一大堆,不过直接上代码: 图中步骤D,请格外注意,若缺少,则导致最终结果无法返回. 匿名函数的定义是:因为没有名字,所以不能被调用,在A处使用,就在A处编写,然后在A处执行,执行完毕返回结果后自动销毁. lambda一般和内置函数或自定义函数配合使用. 三元表达式,比较简单粗暴.建议不要多个三元表达式嵌套在一起,因为会导致代码不易被阅读. 列表生成式,可以快速生成一个列表,也可以快速对一个列表的内容进行修改 字典生成式,可以快速生成一个字典,也可以快速对一个字典的内容进行修改 首先若要使用二分算法,列表必须是有序的.其原理,就是将事物细分在细分的结果中和目标值进行比对,从而实现对目标值的查找.且效率相对较高. 现有列表 test_liset = [1,2,3,4,5,6,7] 如果想确定4是不是在列表里,如果用for循环去将列表中的元素取出,再进行比较,找是同样可以找到,但是需要经历4次比较. 而使用二分算法,就不一样了,1次搞定,他每次都会取列表中间位置的值与目标值进行比较,然后根据结果,截取当前列表的不同区间,然后再用中间位置的值与目标值比较,直至列表内的值都比较完. 递归/匿名函数/三元表达式/列表生成式/字典生成式/二分算法 标签:生成 区间 for span img class 自定义函数 turn 截取 原文地址:https://www.cnblogs.com/hellozizi/p/11177673.html>>>递归:
test_list = [1,[2,[3,[4,[5,[6,[7,[8,[9,[10,[11,[12,[13,[14,]]]]]]]]]]]]]]
res = 0
def sum_list(test_list, res):
for i in test_list:
if type(i) == int:
res += i
if len(test_list) == 1:
return res
else:
return sum_list(i,res)
print(sum_list(test_list,res))
>>>匿名函数:
x = 1
y = 2
def my_sum(x,y):
return x+y
print(my_sum())
#下面这行代码的功能等价于上面的函数
print((lambda x,y:x+y)(x,y))>>>三元表达式
x = 1
y = 2
print(x if x > y else y) #如果x > y,则返回结果是x,否则返回y.在做简单判断时,非常实用.
>>>列表生成式
>>>字典生成式
>>>二分算法
生命不息,学习不止:)
文章标题:递归/匿名函数/三元表达式/列表生成式/字典生成式/二分算法
文章链接:http://soscw.com/essay/32929.html