一 python自动化基础能力:3.python基础上之数据类型,函数( 十 )


方法:先检查第一个字符和最后一个字符是否一致,如果不一致不是回文字符串,如果一致,则看剩余部分是不是回文串 。
def palindrome(s):#基线条件,如果字符串长度小于2,则这个字符串是回文串if len(s) < 2:return Trueelif s[0] != s[-1]:return False#递归条件return palindrome(s[1:-1])print(palindrome('Python'))
打印False 。
10.匿名函数
用lambda关键字创建的简单的没有函数名的函数,这种函数不用def声明
语法格式:lambda参数... :表达式sum = lambda args1,args2: args1+args2print(sum(1,2))#结果为:3
11.()函数
内置函数(),参数中传入可迭代的结构,即(,),可以从序列中过滤出符合条件的元素,保存到一个新的序列中 。
参数:传递实现过滤功能的函数;
参数:需要过滤的序列 。
返回值:过滤后的新序列 。
l = [1,2,3,4,5,6,7,8,9,10]def tri(n):if n % 3 == 0:return Trueprint(list(filter(tri,l)))
打印出[3, 6, 9] 。
12.map()函数:
可以对可迭代对象中的所有元素做指定操作,然后将其添加到一个新的可迭代对象并返回 。
匿名函数一般都是作为参数使用,其他地方一般不用 。
l = [1,2,3,4,5,6,7,8,9,10]r = map(lambda i:i+1,l)print(list(r))
打印[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
13.sort()方法:
该方法用来对列表中的元素进行排序,直接默认比较列表中元素的大小 。
在该方法中可以接受一个关键字参数,即一个函数作为参数 。
l = [34,554,67,897,436]l.sort()print(l)
打印[34, 67, 436, 554, 897]
同时可传递参数来对字符串长度进行比较 。
l = ['ssd','adsd','frfrrffr','frfrsfrfs','rd']l.sort(key=len)print(l)
打印['rd', 'ssd', 'adsd', '', ''] 。
还可以根据类型转换后的值进行比较:
l = ['34',554,'67',897,436]l.sort(key=int)print(l)
打印['34', '67', 436, 554, 897]
14.()函数:
返回一个新的列表 。
l = ['34',554,'67',897,436]l2 = sorted(l,key=int)print(l)print(l2)
打印
['34', 554, '67', 897, 436]['34', '67', 436, 554, 897]
15.高级函数
特点:
1.接受一个或多个函数作为参数;
2.将函数作为返回值 。
满足任意一个特点即为高级函数 。
练习:定义一个函数,将指定列表中的所有偶数,保存到新的列表中返回 。
l = [1,2,3,4,5,6,7,8,9,10]def evenlist(lst):new_list = []for item in lst:#判断item的奇偶if item % 2 == 0:new_list.append(item)return new_listprint(evenlist(l))
打印[2, 4, 6, 8, 10]
用函数判断奇偶时:
l = [1,2,3,4,5,6,7,8,9,10]def evenlist(lst):def even(i):if i % 2 == 0:return Truenew_list = []for item in lst:#判断item的奇偶if even(item):new_list.append(item)return new_listprint(evenlist(l))
结果相同 。
可在外函数中同时添加多个内部函数,但是这不灵活的,需要将每个函数都写出来 。
当使用函数作为参数时,实际上是将相应函数的代码传递进了目标函数 。