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
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)