Python学习日志——函数补充
2019-07-25 21:25
176 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38525063/article/details/97303377
格式
高阶函数
把一个函数名,以实参的形式,传递给这个函数的形参,这个函数就称为高阶函数。
def add(a,b,c): return c(a)+c(b) a_va=add(-9,1,abs) print(a_va)
举例:
li1=['zhjiang','college','university'] def start_s(s,c): return s.startswith(c) def end_s(s,c): return s.endswith(c) def one(lis,st,a): li=[] for i in lis: if not a(i,st): li.append(i) return li print(one(li1,'c',start_s)) print(one(li1,'ty',end_s))
filter函数
功能:
-
过滤序列中不符合函数条件的元素。当序列中需要保留的元素可以用某些函数时。就应该想到filter函数。
-
调用格式
filter(function,sequence)
function —>可以是自定义的函数,也可以匿名函数 - sequence —>列表,元组,字符串
li1=['zhjiang','college','university'] f=filter(lambda sr:not sr.endswith('ty'),li1) print(list(f))
map函数 映射
功能:
- 求一个序列或者多个序列进行函数映射后的值。(用list()强转)
格式:
- ‘map(function,iterable1,iterable2)’ function 参数可不止一个
- iterable1,iterable2就是传入function的参数
li=[1,2,3,4,5] res=map(lambda x:x+1,li) print(list(res)) #[2, 3, 4, 5, 6] x=[1,2,3,4] y=[5,4,3,2] def f(x,y): return x+y r=map(f,x,y) print(list(r)) #[6, 6, 6, 6]
reduce函数
- 功能 对序列压缩运算,得到一个value
- python2里,reduce为内置函数,而现在,py3中,他被移到fuctools模块中
- from funtools import reduce
reduce(function,iterable,[inital]) function必须要传两个参数 iterable--->列表元组
- 例
from functools import reduce li=[1,2,3,4,5,6] t=reduce(lambda x,y:x+y,li) print(t) #1--->f(1,2)--->[3,3,4,5,6] #2--->f(3,3)--->[6,4,5,6] #3--->f(6,4)--->[10,5,6] #.... #21 li=[1,2,3,4,5,6] t=reduce(lambda x,y:10*x+y,li,100) print(t) #100123456
apply
功能
- pandas中,应用对象是pandas中的DataFrame或者Series
- 直接对DataFrame或者Series应用函数
- 对pandas中gropby之后的聚合对象应用apply
import numpy as np import pandas as pd a=np.random.randint(low=0,high=4,size=(2,4)) print(a) data=pd.DataFrame(a) print(data) tim=data.apply(lambda x:x*10) print(tim) ''' [[3 3 1 1] [1 1 1 0]] 0 1 2 3 0 3 3 1 1 1 1 1 1 0 0 1 2 3 0 30 30 10 10 1 10 10 10 0
zip
功能
- 将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,返回由这些元组构成的对象
- 长度不一样的时候,以长度短的为准
注:
- 利用\*号操作符,与zip相反,进行解压
格式
zip(iterable1,it2,it3…)
- iterable—>两个或者多个可迭代序列(字符串,列表,元组,字典) py2
- py3
a=[1,2,3] b=[4,5,6,7] zipt=zip(b,a) print(list(zipt)) #[(4, 1), (5, 2), (6, 3)] start_zipt=zip(*zipt) print(list(start_zipt)) #[(4, 5, 6), (1, 2, 3)] a={'name':'sheep'} b=[4,5,6,7] c={'id':666} zip_1=zip(a,b,c) print(list(zip_1)) #[('name', 4, 'id')]
相关文章推荐
- python学习日志(六)"封装,继承,多态,Mixin,类的属性,魔法函数,抽象类,自定义类"
- Python学习笔记七:内置函数补充,函数作用域,闭包及递归
- Python学习-函数补充1
- Python学习日志(三)—— 函数
- Python学习日志 - 8.函数(习题解答)
- python学习日志(十三)"装饰器,偏函数,collections模块"
- python学习记录8--给自己:函数的封装(),index()待补充
- Python学习-函数补充2-内置函数
- Python系统学习笔记14(续13:高阶函数补充:zip/enumerate、collections模块namedtuple/deque/defaultdict/Counter)
- svn学习之钩子函数 实现不允许空日志
- python学习笔记(六)——函数
- Learn Python The Hard Way学习(20) - 函数和文件
- Python学习入门基础教程(learning Python)--2 Python简单函数设计 .
- 一步一步学习PHP(4) php 函数 补充2
- Python:通过计算阶乘来学习lambda和reduce这两个函数的使用
- Dive Into Python 学习记录1-函数/模块导入/字典/列表/元组/字符串分割、连接、格式化/映射list/
- python基础学习-3(函数)
- python 的日志logging模块学习
- Python学习入门基础教程(learning Python)--2.3.2Python函数实参详解