深入python函数 python函数csdn

深入理解Python reduce函数

例如上面的例子,实现一个整形集合的累加。假设lst = [1,2,3,4,5],实现累加的方式有很多:

成都创新互联公司主营大同网站建设的网络公司,主营网站建设方案,app软件开发,大同h5成都小程序开发搭建,大同网站营销推广欢迎大同等地区企业咨询

第一种:用sum函数。

sum(lst)

第二种:循环方式。

def customer_sum(lst):

result = 0

for x in lst:

result+=x

return result

def customer_sum(lst):

result = 0

while lst:

temp = lst.pop(0)

result+=temp

return result

if name ==" main ":

lst = [1,2,3,4,5]

print customer_sum(lst)

第三种:递推求和

def add(lst,result):

if lst:

temp = lst.pop(0)

temp+=result

return add(lst,temp)

else:

return result

if name ==" main ":

lst = [1,2,3,4,5]

print add(lst,0)

第四种:reduce方式

lst = [1,2,3,4,5]

print reduce(lambda x,y:x+y,lst)

lst = [1,2,3,4,5]

print reduce(lambda x,y:x+y,lst,0)

def add(x,y):

return x+y

print reduce(add, lst)

def add(x,y):

return x+y

print reduce(add, lst,0)

有一个序列集合,例如[1,1,2,3,2,3,3,5,6,7,7,6,5,5,5],统计这个集合所有键的重复个数,例如1出现了两次,2出现了两次等。大致的思路就是用字典存储,元素就是字典的key,出现的次数就是字典的value。方法依然很多

第一种:for循环判断

def statistics(lst):

dic = {}

for k in lst:

if not k in dic:

dic[k] = 1

else:

dic[k] +=1

return dic

lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]

print(statistics(lst))

第二种:比较取巧的,先把列表用set方式去重,然后用列表的count方法

def statistics2(lst):

m = set(lst)

dic = {}

for x in m:

dic[x] = lst.count(x)

lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]

print statistics2(lst)

第三种:用reduce方式

def statistics(dic,k):

if not k in dic:

dic[k] = 1

else:

dic[k] +=1

return dic

lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]

print reduce(statistics,lst,{})

或者

d = {}

d.extend(lst)

print reduce(statistics,d)

通过上面的例子发现,凡是要对一个集合进行操作的,并且要有一个统计结果的,能够用循环或者递归方式解决的问题,一般情况下都可以用reduce方式实现。

python函数深入浅出 7.help()函数详解

help 源于英文,标识帮助

help函数是python的一个内置函数(python的内置函数可以直接调用,无需import)

所以我们执行help示例:

2.函数定义源码及其用法拆解

一些不常用的函数或是模块的用途不是很清楚,这时候就需要用到help函数来查看帮助。

参数说明:

也可传入一个数据结构查询帮助方法

如下,就可以展示出可以对list做的操作

还可以具体到某个方法:

3.版本差异

无版本差异

4.学习建议

当手边资料较少时,不要忘了系统提供的help函数可以提供给我们陌生方法的用法参考。

对基础运行环境有疑问的,推荐参考: python函数深入浅出 0.基础篇

python函数深入浅出 12.os.getcwd()函数详解

os是python自带的系统模块,需要import使用

os 源于英文Operating System(操作系统)的缩写

cwd 则是源于Current Working Directory,中文意思是 当前工作目录

所以os.getcwd() 指获取当前工作目录

示例:

getcwd()方法语法格式如下:

总之,举例来讲,os.getcwd()、sys.path[0] (sys.argv[0])和 file 的区别是这样的:

假设目录结构是:

然后我们在C:\test下面执行

这时sub_path.py里面与各种用法对应的值其实是:

path的准确定位对于import包,读写文件都非常重要,

如果一时不能理解,可以在文件执行开头多加几个

print帮助我们确定那个路径是我们希望拿到的,然后将其设为全局变量就好了

对基础运行环境有疑问的,推荐参考: python函数深入浅出 0.基础篇

python函数深入浅出 16.time.sleep()函数详解

time.sleep() 函数命名来源于英文单词time(时间)和sleep(睡眠)。

time 是python带的非内置库,使用时需要import,主要用于处理和时间相关的操作。

time.sleep用于给定时间内挂起(等待)当前线程的执行。

time.sleep() 函数的例子:

可以注释掉time.sleep(2)再运行一次对比一下

可以看到虽然都是打印出一样的结果,但time.sleep()加入了等待时间

这里还要解释一下python中线程与进程的区别。

举个例子,厨房做菜看成是一个进程,那么这个进程下面就可能有多个人或一个人(cpu基本执行单元,即线程)来执行,多个人可以分别洗菜,刷碗,摆盘等等同时作业,他们又是共享这个厨房的资源的。每个人存在一定的资源竞争关系,比如炉火只有1个。

这里time.sleep是针对线程执行的,也就是其中一个人去sleep睡觉了,不影响其他人的继续工作。

参数

该函数没有返回值。

结果类似如下:

可以看到秒数相差了5

time.sleep()常用于推迟执行的场景

在python中,与时间相关的模块有:time,datetime以及calendar

对基础运行环境有疑问的,推荐参考: python函数深入浅出 0.基础篇


网站标题:深入python函数 python函数csdn
网页地址:http://ybzwz.com/article/dosgidi.html