#内置函数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)
python高级函数应用
最新推荐文章于 2024-04-11 23:06:05 发布