一日一技:如何让itertools.tee线程安全摄影:产品经理一起吃:kingname&产品经理在上一篇文章中,我们说到了,itertools.tee不是线程安全的,并给出了一个例子,如下图所示:在两个线程里面同时运行分裂出来的生成器对象,就会导致报错。现在,你想看看itertools.tee的源代码,但是你会发现,在PyCharm里面,它的源代码如下图所示:这是因为,在CPython中
分类:
编程语言 时间:
2020-12-08 11:59:32
阅读次数:
6
一日一技:炸掉你的内存——itertools.tee的缺陷摄影:产品经理陪伴:kingname在上一篇文章中,我们讲到了,使用itertools.tee可以让一个生成器被多次完整遍历:importitertoolsg=generator()g_1,g_2,g_3=itertools.tee(g,3)forrowing_1:print(row)forrowing_2:print(row)forrow
分类:
其他好文 时间:
2020-12-08 11:59:13
阅读次数:
3
一日一技:一个生成器如何当两个用?摄影:产品经理买单:kingname我们知道,Python里面的生成器只能被消费一次,例如下面的代码:defname_generator():fornamein[‘产品经理‘,‘kingname‘]:yieldnamedefsay_hello(g):print(‘hello函数开始运行‘)fornameing:print(‘hello‘,name)print(‘h
分类:
其他好文 时间:
2020-12-08 11:58:59
阅读次数:
3
使用yield压平多层嵌套字典列表混合数据摄影:产品经理买单:kingname在上一篇文章里面,我们讲到了如何使用Python的yield关键字简化代码,压平多层嵌套字典的。那么如果我们的数据不仅仅有字典,还有列表,是一个字典列表多层嵌套的数据怎么办呢?例如:nest_dict={‘a‘:1,‘b‘:{‘c‘:2,‘d‘:3,‘e‘:{‘f‘:4}},‘g‘:{‘h‘:5},‘i‘:6,‘j‘:{
分类:
其他好文 时间:
2020-12-08 11:58:44
阅读次数:
3
使用yield压平嵌套字典有多简单?摄影:产品经理买单:kingname我们经常遇到各种字典套字典的数据,例如:nest_dict={‘a‘:1,‘b‘:{‘c‘:2,‘d‘:3,‘e‘:{‘f‘:4}},‘g‘:{‘h‘:5},‘i‘:6,‘j‘:{‘k‘:{‘l‘:{‘m‘:8}}}}有没有什么简单的办法,把它压扁,变成:{‘a‘:1,‘b_c‘:2,‘b_d‘:3,‘b_e_f‘:4,‘g_
分类:
其他好文 时间:
2020-12-07 12:49:42
阅读次数:
14
一日一技:如何用Python让自己变成天选之子摄影:产品经理厨师:kingname请大家猜一猜下面这段代码的运行效果:importrandomimporttimepeople=[‘kingname‘,‘王小一‘,‘李小二‘,‘张小三‘,‘刘小四‘,‘卢小五‘,‘马小六‘,‘周小七‘,‘丁小八‘,‘朱小九‘]foriinrange(1,11):lucky_guy=random.choice(peop
分类:
编程语言 时间:
2020-12-07 12:47:52
阅读次数:
18
一日一技:如何正确获取MongoDB集合里面的最后一条数据摄影:产品经理厨师:kingname在我们使用Python查询MongoDB的时候,一般会使用MongoDB的集合(collection)对象的find()方法或者find_one()方法:importpymongohandler=pymongo.MongoClient().chapter_7.example_data_4#获得一个游标操作
分类:
数据库 时间:
2020-12-07 12:47:33
阅读次数:
11
一日一技:使用Locust对网络接口进行压力测试摄影:产品经理买单:kingname最近,有同学反应我的博客[1]访问速度有点慢,那么我如何直观地知道我博客的访问速度呢?我们可以使用Locust这个基于Python的压力测试工具来测试博客的访问速度。首先使用pip安装Locust:python3-mpipinstalllocust如果在macOS下安装出现了如下的报错信息:那么需要先执行如下命令:
分类:
其他好文 时间:
2020-12-07 12:47:03
阅读次数:
11
一日一技:更优雅地在Python中写日志摄影:产品经理买单:kingname原来我们在Python中写日志,使用的是Python自带的logging模块,要实现既在终端输出,又能写文件,并且日志文件还能rotate,代码需要十多行:importloggingfromlogging.handlersimportRotatingFileHandleros.makedirs(‘Logs‘
分类:
编程语言 时间:
2020-12-07 12:46:45
阅读次数:
11
一日一技:在Python中,is并不一定包含==摄影:产品经理买单:kingname在我们日常使用Python时,大家可能有这样一种认识:a==b为True,aisb不一定为Trueaisb为True,则a==b一定为True>>>a=‘abc!‘>>>b=‘abc!‘>>>a==bTrue>>>aisbFalse>&g
分类:
编程语言 时间:
2020-12-07 12:46:30
阅读次数:
11