函数

函数式编程 
1、lambda 匿名函数
行内函数
f=lambda x,y,z:x+y+z #相当于一个函数f(x,y,z)=x+y+z
f=(1,2,3)
2、reduce(func(),Z) 用函数func对集合Z中的1、2个数进行运算,将得到的结果再与Z中的第三个数进行运算
from functools import reduce#python3 中必须加在,要使用reduce就必须先导入它
def add (x,y):
    return x+y
sum=reduce(add,(1,2,3,4,5,6,7))#1+2+。。。+7
print(sum)
3、filter()用于过滤序列,fliter()用于接受一个函数和一个序列,并把传入的函数依次作用于每一个元素, 然后根据返回值True或者False决定保留还是丢弃元素。
#删掉偶数,保留奇数
def is_odd(n):
    return n%2 ==1
b=list(filter (is_odd,[1,2,3,56,6,7,90]))
print(b)
#删除空字符串
def not_empty(s):
    return s and s.strip()
b=list (filter(not_empty,['a','',None,'c','']))
print(b)
#实现函数功能
b=filter(lambda x:x<8 and x>5,range(1,10))
print(list(b))#filter是一个容器,返回时需要用list调用才能显示数据
4、map(func,S)将传入的函数func依次作用到序列s的每个元素,并把结果作为新的序列返回 函数func在S域上遍历,map()是一个容器,调用的时候需要引入list才
能显示数据
#比较map和filter
b=list(map(lambda x:x**2,[1,2,3]))
print(b)
b=list(filter(lambda x:x**2,[1,2,3]))
print(b)
#map返回的是func作用后的结果数据而filter是通过func作用筛选出作用域的数据
#map可以接受多个参数的函数
b=list(map(lambda x,y:x*y+x,[1,2,3],[4,5,6]))
print(b)
5、行函数 (列表解析,列表推导)
list=[1,3,4,5,6]
A=[k+2 for k in list if k%2==0]
print(A)
A=[k+2 for k in [1,2,4,6,] if k%2==0]
print(A)
6、常用内置函数 sum  zip enumerate max min
s=sum([1,2,3])#sum的参数是一个list
print(s)
a=range(1,10)
b=range(1,11)
c=sum([item for item in a if item in b  ])
print(c)
#sum的参数可以是字典、元组、集合,但是计算对象都应该是数值型
a={1,2,3}
print(sum(a))
a=(1,2,3)
print(sum(a))
a={1:2,2:3,3:4}
print(sum(a))#默认输出的是key的值
print(sum(a.values()))

t='abc'
s=[1,2,3]
s=zip(t,s)
print(list(s))#zip(t,s)返回t和s一个相互匹配的列表
s=zip('12345','abcd')#若长度不够,以最短的为主
print(list(s))
x=[1,2,3]
y=[4,5,6]
z=[7,8,9]
xyz=zip(x,y,z )
u=zip(*xyz)
print(list(u))
#dict可以和zip联合使用生成一个字典
s=dict(zip('abc',range(1,4)))
print(s)

#enumerate(t)返回t的index和元素对,t可以是字符串,元组,列表,字典,如果是字典,则返回键名
t={1:2,3:4,5:6}
for i,k in enumerate(t):
    print(i,k)

#max min 的参数可以是列表、元组、集合、字典 还可以是range()
a={1:2,3:4,5:6}#字典默认的是key 如果要对value进行计算 用 .values()
print(max(a))
print(min(a.values())

eval()把字符串当成有效的表达式求值
x =1
s=eval('x+1')
print(s)
#创建一个dir.txt的文件在python3.7中   删除这个文件
__import__('os').system('dir>dir.txt')
open('dir.txt').read()
import os
os.system('del dir.txt/q')

 



 



 



 



 


 


posted on 2018-09-05 13:33  lljaway  阅读(108)  评论(0编辑  收藏  举报

导航