#coding:utf-8 # filter()函数是用于对一个序列进行过滤或者筛选的操作。 # 两个参数:1>函数,设置过滤内容的逻辑;2>序列,list/str都可以。 # 过滤偶数和奇数功能 def filter_function(number): # 返回True或者False return number %2 == 1 # 该函数会将序列中的每一个元素传递到函数中执行,在函数中只返回True或者False结果, filter()函数会根据返回的结果,保留True的元素,过滤掉为False的元素。 res = filter(filter_function, [1,2,3,4,5]) print res # 将字符串中大写的字符过滤掉。 def filter_upper_char(string): return string.islower() print filter(filter_upper_char, 'AbcDEfooPS') # 以上两种写法可以使用lambda匿名函数完成 print '-------',filter(lambda number:number%2 == 1, [1,2,3,4,5,6]) print '====',filter(lambda string:string.islower(), 'AbcDEfooPS') # sorted()用于对一个序列进行升序或者降序的排列 list1 = [20, 15, 70, 3, 9] print 'sorted = ',sorted(list1) # sorted()函数对于字符串的排序默认是按照ASCII码进行排序的。 string_list = ['b', 'a', 'o', 't', 'e'] print '=====',sorted(string_list) # 如果通过sorted函数实现对一个序列的降序排列,需要给sorted函数设置两个参数。 # 如果x>y返回-1,x<y返回1,是按照降序排列 # 如果x>y返回1, x<y返回-1,是默认的升序排列 def reversed(x,y): if x > y: return -1 if x < y: return 1 return 0 print '===========',sorted(string_list, reversed) # 如果需要实现字符串的排序,忽略大小写,只按照a-z的顺序排列。 def ignore_case(string1, string2): # 可以将两个字符串全部转化成大写或者全部转化成小写 res1 = string1.upper() res2 = string2.upper() if res1 > res2: return -1 if res1 < res2: return 1 return 0 print '---------',sorted(['baby', 'ADS', 'Haha', 'Case'], ignore_case)
filter()函数/sorted()函数
最新推荐文章于 2023-04-11 08:00:00 发布