python基础知识一

1、zip:用于将多个列表中的元素进行组合

a=[1,2,3]
b=[4,5,6]
c=[6,7,8]

print(list(zip(a,b,c)))
#结果:[(1, 4, 6), (2, 5, 7), (3, 6, 8)]

2、lambda:简洁定义运算
map:将运算与实际数字结合

fun2=lambda x,y:x+y
print(list(map(fun2,[1,3],[4,5])))

#输出:[5, 8]

3、多线程

#duoxiancheng
import threading
import time
def thread_job():
    #print('This is an added Thread,number is %s'%threading.current_thread())
    print('T1 start\n')
    for i in range(10):
        time.sleep(0.1)
    print('T1 finish\n')

def T2_job():
    print('T2 start\n')
    print('T2 finish\n')

def main():
    added_thread=threading.Thread(target=thread_job(),name='T1')
    thread2=threading.Thread(target=T2_job,name='T2')
    added_thread.start()
    thread2.start()
    thread2.join()#等子线程运行完才运行主程序
    print('all done\n')

main()


#输出
#T1 start

#T1 finish

#T2 start

#T2 finish

#all done

4、多线程解决问题

#duoxiancheng
import threading
import time
from queue import  Queue

data=[[1,2,3],[3,4,5],[4,4,4],[5,5,5]]
def job(l,q):
    for i in range(len(l)):
        l[i]=l[i]**2
    q.put(l)#线程中 不可直接返回 需要使用加入队列的方法
def multithreading(data):
    q=Queue()
    threads=[]
    for i in range(4):#定义四个线程同时进行计算
        t=threading.Thread(target=job,args=(data[i],q))
        t.start()
        threads.append(t)
    for thread in threads:#将线程加入到主线程中 等到子线程运行完才运行主线程后续内容
        thread.join()
    results=[]
    for i in range(4):#存储线程结果
        results.append(q.get())
    print(results)

multithreading(data )

#输出:[[1, 4, 9], [9, 16, 25], [16, 16, 16], [25, 25, 25]]

5、多线程 如果是单核的话采用的是流水的机制,所以得看任务的性质,用多线程不一定会大大缩短时间
6、缓冲池的使用:map与apply_async
在这里插入图片描述
map:一次可以调用一个进程
apply_async:一次只可以调用一个进程,可用图示迭代的方法实现与map同样的效果

目录不存在则新建

if not os.path.exists(filename2save):
            os.makedirs(filename2save)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值