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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值