python一些高阶函数的例子

1.filter函数–筛选函数

#筛选函数——1~100的平方数
from math import sqrt
def sqrt_int(x):
          return sqrt(x)%1==0
a=filter(sqrt_int,range(1,101))    #惰性序列,即需要list函数转换才可正常输出
b=list(a)
print(b)

2.map函数——映射

a,b,c=map(int,input('一次输入三个').split())    #split()是切片分段函数,默认情况下是以空格分隔

3.reduce函数——累积

#1~100的和
from functools import reduce  #导入累积函数
def add(x,y):                 
          return x+y
a=reduce(add,range(101)) #引用的函数必须有两个参数
print(a)

4.sorted函数和sort函数——排序
默认情况下为升序

sorted(interable,key=None,reverse=False)
#interable--迭代器(对象);key--自定义排序(指定的函数);reverse--排序规则(False为升序,True为降序)
L=[2,5,9,7,3,1]
a=sorted(L)  
b=L.sort()   
print(a)  #sorted排序后生成新列表
print(b)  #sort排序后,结果返回为空(None),将结果迭代到原列表
print(L)
L=[-4,5,-7,3,8,-2]
a=sorted(L,key=abs)
b=sorted(L)
print(a)	#加自定义的排序
print(b)	#没加自定义的排序key
l=['Tom','Jeck','Lily','sala','qxce']
a=sorted(l)
print(a)  #对字符串排序要根据ASCII码的大小进行排序的
b=sorted(l,key=str.lower) #忽略字符串大小写
print(b)
c=sorted(l,key=str.upper) #忽略字符串大小写
print(c)
d=sorted(l,key=str.lower,reverse=True)  #字符串大小以降序形式排列
print(d)

#结果
['Jeck', 'Lily', 'Tom', 'qxce', 'sala']
['Jeck', 'Lily', 'qxce', 'sala', 'Tom']
['Jeck', 'Lily', 'qxce', 'sala', 'Tom']
['Tom', 'sala', 'qxce', 'Lily', 'Jeck']

5.lambda匿名函数———表达式函数 lambda的例子

lambda arg0,……,argn:exper    #lambda的表达式用法(或者定义)
L = [lambda x: x**2,\
		lambda x: x**3,\
		lambda x: x**4]
for x in L:
... 	print x(2)
...
4
8
16

还加了猜数游戏——随机数

#猜数字游戏,范围1~100
import random
L=[]
num=random.randint(0,100)
print('{0:*^70}'.format('Welcome to the numbers game!'))
i=1
while True:
          x=int(input('Plase guess number:'))
          if x>num:
                    print('big!')
          elif x<num:
                    print('small!')
          else:
                    L.append(num)
                    print('Pass %d pass!'%i)
                    num=random.randint(0,100)
                    i=i+1
                    if i>8:
                              print('Complete clearance!')
                              break
print('你才对的数是这些:',L)
print('Good bye!')

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值