2、lambda表达式
是一个表达式,可以创建匿名函数,冒号前是参数,冒号后只能有一个表达式(传入参数,根据参数表达出一个值)
nl = lambda x,y:x*y # 给出x,y参数,计算出x和y的相乘
print(nl(3,5))
print(‘-----’)
#和map的结合
li = [1,2,3,4,5]
for i in map(lambda x:x*2, li):
print(i)
结果:
15
2
4
6
8
10
3、Pool
1、多进程,是multiprocessing的核心,它与threading很相似,但对多核CPU的利用率会比threading好的多
2、可以允许放在Python程序内部编写的函数中,该Process对象与Thread对象的用法相同,拥有is_alive()
、join([timeout])
、run()
、start()
、terminate()
等方法
3、multiprocessing包中也有Lock/Event/Semaphore/Condition
类,用来同步进程
传统的执行多个函数的例子
import time
def do_proc(n): # 返回平方值
time.sleep(1)
return n*n
if name == ‘main’:
start = time.time()
for p in range(8):
print(do_proc§) # 循环执行8个函数
print("execute time is " ,time.time()-start)
结果:
0
1
4
9
16
25
36
49
execute time is 8.002938985824585
使用多进程执行函数
‘’’
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
‘’’
import time
from multiprocessing import Pool
def do_proc(n): # 返回平方值
time.sleep(n)
print(n)
return n*n
if name == ‘main’:
pool = Pool(3) # 池中最多只能放三个任务
start = time.time()
p1 = pool.map(do_proc, range(8)) # 跟python的map用法相似(map连续生成8个任务的同时依次传给pool,pool依次调起池中的任务,执行完的任务从池中剔除)
pool.close() # 关闭进程池
pool.join() # 等待所有进程(8个进程)的结束
print(p1)
print("execute time is ", time.time() - start)
结果:
0
1
2
3
4
5
6
7
[0, 1, 4, 9, 16, 25, 36, 49]
execute time is 3.3244528770446777
查看任务管理器:
4、random
import random
print(random.random()) # 生成一个0-1随机小数
print(random.uniform(10,20)) # 指定范围随机选择一个小数
print(random.randint(10,20)) # 指定范围内随机选择一个整数
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!