filter_sorted函数

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值