python高级函数应用

#内置函数abs

print(abs(-10))
#将这个函数本身赋值给变量,不能带后面的括号
f = abs
print(f(-2))

#把函数当做函数传递给其他函数
def add(x, y, f):
    return f(x) + f(y)

#这里要传一个函数本身进去
print(add(-2, 5, abs))
#或f
print(add(-2, 5, f))

'''
map
'''
l = [1, 2, 3, 4, 5, 6]

def take(x):
    return x*x

m= map(take,l)
#print(list(m))
#for i in m:
#    print(i)
print(next(m))

#将k中的list转成str
k = [1, 2, 3, 4, 5, 6]
print(list(map(str, k)))

#reduce 把一个函数作用在一个序列上,reduce把结果继续和序列的下一个元素做累计计算
from functools import reduce

j = [4, 2, 5, 7, 8, 9]#获得2425789
def f(x, y):
    return x * 10 + y
print(reduce(f,j))

#str() 转 int()
#1.字符串每个值取出来,转化成对应的额数字,得到数字序列
#2.通过数字序列没两个成*10相加,得到对应的一个整数

m = '54678'

def charToint(s):
    digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
    return digits[s]
n = map(charToint, m)
nums = reduce(f,n )
print(nums)
print(type(nums))

'''
匿名函数  在函数中定义函数
'''
#常量大写放在外部
DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
def strToint(s):
    def f(x, y):
        return x * 10 + y

    def charToint(s):
        return DIGITS[s]
    return  reduce(f, map(charToint, s))

print(strToint('8656234'))

'''
继续精简  使用lambda表达式: 关键字  lambda x,y:x*10+y  (冒号前为参数,后为返回值)
'''
def strToint(s):
    def charToint(s):
        return DIGITS[s]
    return reduce(lambda x, y: x*10+y, map(charToint, s))
print(strToint('234234'))

# [‘MIKE’, ‘Adidas’, ’coffee‘],输出: [’Mike‘, ’Adidas‘, ’Coffee‘]:
'''
# Filename : test.py
# author by : www.runoob.com
str = "www.runoob.com"
print(str.upper())          # 把所有字符中的小写字母转换成大写字母
print(str.lower())          # 把所有字符中的大写字母转换成小写字母
print(str.capitalize())     # 把第一个字母转化为大写字母,其余小写
print(str.title())          # 把每个单词的第一个字母转化为大写,其余小写 
'''
def normalize(name):
    return name.title()

# 测试:
L1 = ['MIKE', 'Adidas', 'coffee']
L2 = list(map(normalize, L1))
print(L2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值