保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

满满干货!20个Python使用的小技巧

  1。易混淆操作
  本节对一些Python易混淆的操作进行对比。
  1。1有放回随机采样和无放回随机采样importrandomrandom。choices(seq,k1)长度为k的list,有放回采样random。sample(seq,k)长度为k的list,无放回采样
  1。2lambda函数的参数funclambday:xyx的值在函数运行时被绑定funclambday,xx:xyx的值在函数定义时被绑定
  1。3copy和deepcopyimportcopyycopy。copy(x)只复制最顶层ycopy。deepcopy(x)复制所有嵌套部分
  复制和变量别名结合在一起时,容易混淆:a〔1,2,〔3,4〕〕Alias。baliasaassertbaliasaandbaliasisaShallowcopy。bshallowcopya〔:〕assertbshallowcopyaandbshallowcopyisnotaandbshallowcopy〔2〕isa〔2〕Deepcopy。importcopybdeepcopycopy。deepcopy(a)assertbdeepcopyaandbdeepcopyisnotaandbdeepcopy〔2〕isnota〔2〕
  对别名的修改会影响原变量,(浅)复制中的元素是原列表中元素的别名,而深层复制是递归地进行复制,对深层复制的修改不影响原变量。
  1。4和isxy两引用对象是否有相同值xisy两引用是否指向同一对象
  1。5判断类型type(a)int忽略面向对象设计中的多态特征isinstance(a,int)考虑了面向对象设计中的多态特征
  1。6字符串搜索str。find(sub,startNone,endNone);str。rfind(。。。)如果找不到返回1str。index(sub,startNone,endNone);str。rindex(。。。)如果找不到抛出ValueError异常
  1。7List后向索引
  这个只是习惯问题,前向索引时下标从0开始,如果反向索引也想从0开始可以使用。print(a〔1〕,a〔2〕,a〔3〕)print(a〔0〕,a〔1〕,a〔2〕)
  2。常用工具
  2。1读写CSV文件importcsv无header的读写withopen(name,rt,encodingutf8,newline)asf:newline让Python不将换行统一处理forrowincsv。reader(f):print(row〔0〕,row〔1〕)CSV读到的数据都是str类型withopen(name,modewt)asf:fcsvcsv。writer(f)fcsv。writerow(〔symbol,change〕)有header的读写withopen(name,modert,newline)asf:forrowincsv。DictReader(f):print(row〔symbol〕,row〔change〕)withopen(name,modewt)asf:header〔symbol,change〕fcsvcsv。DictWriter(f,header)fcsv。writeheader()fcsv。writerow({symbol:xx,change:xx})
  注意,当CSV文件过大时会报错:csv。Error:fieldlargerthanfieldlimit(131072),通过修改上限解决importsyscsv。fieldsizelimit(sys。maxsize)
  csv还可以读以分割的数据fcsv。reader(f,delimiter)
  2。2迭代器工具
  itertools重新定义了很多迭代器工具,例如子序列工具:importitertoolsitertools。islice(iterable,startNone,stop,stepNone)islice(ABCDEF,2,None)C,D,E,Fitertools。filterfalse(predicate,iterable)过滤掉predicate为False的元素filterfalse(lambdax:x5,〔1,4,6,4,1〕)6itertools。takewhile(predicate,iterable)当predicate为False时停止迭代takewhile(lambdax:x5,〔1,4,6,4,1〕)1,4itertools。dropwhile(predicate,iterable)当predicate为False时开始迭代dropwhile(lambdax:x5,〔1,4,6,4,1〕)6,4,1itertools。compress(iterable,selectors)根据selectors每个元素是True或False进行选择compress(ABCDEF,〔1,0,1,0,1,1〕)A,C,E,F
  序列排序:sorted(iterable,keyNone,reverseFalse)itertools。groupby(iterable,keyNone)按值分组,iterable需要先被排序groupby(sorted(〔1,4,6,4,1〕))(1,iter1),(4,iter4),(6,iter6)itertools。permutations(iterable,rNone)排列,返回值是Tuplepermutations(ABCD,2)AB,AC,AD,BA,BC,BD,CA,CB,CD,DA,DB,DCitertools。combinations(iterable,rNone)组合,返回值是Tupleitertools。combinationswithreplacement(。。。)combinations(ABCD,2)AB,AC,AD,BC,BD,CD
  多个序列合并:itertools。chain(iterables)多个序列直接拼接chain(ABC,DEF)A,B,C,D,E,Fimportheapqheapq。merge(iterables,keyNone,reverseFalse)多个序列按顺序拼接merge(ABF,CDE)A,B,C,D,E,Fzip(iterables)当最短的序列耗尽时停止,结果只能被消耗一次itertools。ziplongest(iterables,fillvalueNone)当最长的序列耗尽时停止,结果只能被消耗一次
  2。3计数器
  计数器可以统计一个可迭代对象中每个元素出现的次数。importcollections创建collections。Counter(iterable)频次collections。Counter〔key〕key出现频次返回n个出现频次最高的元素和其对应出现频次,如果n为None,返回所有元素collections。Counter。mostcommon(nNone)插入更新collections。Counter。update(iterable)counter1counter2;counter1counter2counter加减检查两个字符串的组成元素是否相同collections。Counter(list1)collections。Counter(list2)
  2。4带默认值的Dict
  当访问不存在的Key时,defaultdict会将其设置为某个默认值。importcollectionscollections。defaultdict(type)当第一次访问dict〔key〕时,会无参数调用type,给dict〔key〕提供一个初始值
  2。5有序Dictimportcollectionscollections。OrderedDict(itemsNone)迭代时保留原始插入顺序3。高性能编程和调试
  3。1输出错误和警告信息
  向标准错误输出信息importsyssys。stderr。write()
  输出警告信息importwarningswarnings。warn(message,categoryUserWarning)category的取值有DeprecationWarning,SyntaxWarning,RuntimeWarning,ResourceWarning,FutureWarning
  控制警告消息的输出pythonWall输出所有警告,等同于设置warnings。simplefilter(always)pythonWignore忽略所有警告,等同于设置warnings。simplefilter(ignore)pythonWerror将所有警告转换为异常,等同于设置warnings。simplefilter(error)
  3。2代码中测试
  有时为了调试,我们想在代码中加一些代码,通常是一些print语句,可以写为:在代码中的debug部分ifdebug:pass
  一旦调试结束,通过在命令行执行O选项,会忽略这部分代码:python0main。py
  3。3代码风格检查
  使用pylint可以进行不少的代码风格和语法检查,能在运行之前发现一些错误pylintmain。py
  3。4代码耗时
  耗时测试pythonmcProfilemain。py
  测试某代码块耗时代码块耗时定义fromcontextlibimportcontextmanagerfromtimeimportperfcountercontextmanagerdeftimeblock(label):ticperfcounter()try:yieldfinally:tocperfcounter()print(s:s(label,toctic))代码块耗时测试withtimeblock(counting):pass
  代码耗时优化的一些原则专注于优化产生性能瓶颈的地方,而不是全部代码。避免使用全局变量。局部变量地查找比全局变量更快,将全局变量的代码定义在函数中运行通常会更快1530。避免使用。访问属性。使用frommoduleimportname会更快,将频繁访问的类的成员变量self。member放入到一个局部变量中。尽量使用内置数据结构。str,list,set,dict等使用C实现,运行起来很快。避免创建没有必要的中间变量,和copy。deepcopy()。字符串拼接,例如a:b:c会创造大量无用的中间变量,:,join(〔a,b,c〕)效率会高不少。另外需要考虑字符串拼接是否必要,例如print(:。join(〔a,b,c〕))效率比print(a,b,c,sep:)低。4。Python其他技巧
  4。1argmin和argmaxitems〔2,1,3,4〕argminmin(range(len(items)),keyitems。getitem)
  argmax同理。
  4。2转置二维列表A〔〔a11,a12〕,〔a21,a22〕,〔a31,a32〕〕Atransposelist(zip(A))listoftupleAtransposelist(list(col)forcolinzip(A))listoflist
  4。3一维列表展开为二维列表A〔1,2,3,4,5,6〕Preferred。list(zip(〔iter(A)〕2))

母亲节的礼物初中生作文导语:母亲节是美国法定的全国性节日。在每年5月的第二个星期日举行。为母亲过节最早源于古希腊的民间风俗。下面小编给大家带来母亲节的礼物初中生作文,欢迎阅读,希望对你们有所帮助!母……写校园的松树作文写校园的松树作文1同学们,你们猜一猜,我最喜欢校园里的哪一个景物?告诉你们吧,我最喜欢校园里的大松树!每当我一进校门的时候,都会经过那棵大松树。夏天,那棵大松树的叶……美妙的音乐优秀作文星期五我们班进行了器乐选拔赛,因为之前我一直在学钢琴,听到这个可以去参加比赛的消息,我异常兴奋,觉得这是一次展现自已,锻炼自己的好机会。中午十二点十分开始比赛,我们吃饭吃……对话作文写作素材生活就其本质来说就是对话。mdash;mdash;米哈伊尔middot;巴赫金对话,是举手长劳劳,二情同依依的执手,在这钟晨暮鼓的凡世中化作一轮皓月,绵连千里。它不……安徒生童话读书笔记汇总【第一篇】读《卖火柴的小女孩》时,妈妈会告诉我,做一个有爱心的人,读《十一只天鹅》时,妈妈又会告诉我,小女孩很爱他的哥哥,爱是会创造奇迹,读《丑小鸭》时,妈妈告诉我要拥有……假如京东物流和顺丰快递在高端快递领域扳手腕,你更看好谁?快递行业一直有种说法:快递分两种,顺丰和其他。但现在,美誉度与顺丰不相上下的京东物流,欲改写上述说法。5月28日,京东物流正式登陆港股。上市首日,京东物流股价报收41。7港元,……大熊猫四年级作文3篇导语:一位我们既熟悉又陌生的朋友,它体态笨拙,爱吃箭竹,最有趣的是它的皮毛,呈黑白两色,脸上长了一副黑眼圈,它的名字叫大熊猫。以下是大熊猫四年级作文,希望给大家带来帮助!大熊猫……成长的进步作文300字是你在漆黑的忧郁中,为我点亮了一盏灯;是你在遇到死巷时,帮我开辟了一条新路;是你在我人生道路上,不辞辛劳地替我排除任何陷阱,让我可以畅行无阻地前进。让我对于有你真好,有了新的面……华为上架多款4G鸿蒙手机,Mate40Pro也是4G网?很多华为老用户都想第一时间升级鸿蒙OS,但除了Mate40、P40、以及Mate30系列的手机用户之外,其它机型都是要等一个月甚至一年的,毕竟适配的工作量很大也要理解一下?……北京协和医院完成Mako机器人辅助全髋关节置换手术中国财富网讯日前,北京协和医院(以下简称协和医院)骨科成功开展该院首例Mako骨科智能机器人辅助全髋关节置换手术,标志着协和医院成为国内较早利用Mako骨科机器人系统开展髋关节……关于母爱的优美句子1、有一种爱被世人所赞颂,有一种爱可以让人每时每刻都感受到它所带来的温暖。这种爱就是母爱。从古至今,从国外到国内无不称赞母爱是世界上最伟大、最无私、最不求回报的爱。2、我……寒假见闻日记300字三篇篇一冬天已经快结束了,我还以为这个冬天不会下雪了呢,正想着呢,就下起了雪,一片两片三四片五片六片七八片,不一会儿,就变成了一个美丽奇妙的银色世界。我迫不急待地央求姥……
这样做让你的抖音视频更清晰无论用电脑剪辑还是手机剪辑、都需要一些方法。上传遭到抖音压缩后,画质肯定是飞流直下。而且每一个作品,不可能逃得过抖音的压缩机制。可为什么有的清晰有的不清晰?那就得看看你的视频参……有关爱国的的作文700字合集5篇在日常学习、工作或生活中,大家最不陌生的就是作文了吧,作文一定要做到主题集中,围绕同一主题作深入阐述,切忌东拉西扯,主题涣散甚至无主题。相信许多人会觉得作文很难写吧,下面是小编……回家真好我想有个家,一个不需要华丽的地方,在我疲倦的时候,我会想到它字里行间,处处弥漫着对家的渴望。家,带给我们的是温暖,带给我们的是快乐,带给我们的是回忆,家里的一切都是美好的。无家……苹果保卫战小学作文可能谁也没有注意到过,这一家人的名字中都有同一个字母L,因为他们过的很幸福,怎么也分不开。那一天,国王病了,国王与王后商量不告诉别人,不然有一些奸臣知道了很可能会企图谋反……骑着单车环台湾岛读后感500字每个人都有自己的梦想,而每一个远大的梦想都必须经历艰难困苦,通过努力和奋斗才能去实现。这是我读完《骑着单车环台湾岛》最大的收获。这本书是章大钧在经过十多年的单车骑行后写的……高中必修1期末考试语文作文预测角色转换之间传说有的雏鸟长大后,会衔食喂养衰老的母鸟。人们把此现象称为ldquo;反哺rdquo;。人类社会也存在类似现象。年轻一代对年长一代的文化影响被称之为ldquo;文化反哺r……朋友似火小学作文如果说朋友似火,那么我则是一只寒风中的鸟儿;如果说朋友似饼,那么我则是在路边等待的人;如果说朋友似指向标,那么我则是没有目标的人;如果说朋友似灯,那么我则是一个在无边黑暗中行走……找座位300字作文一个晴朗的日子,万里无云。小兔欢欢、小乌龟林林,还有小松鼠花花一起到图书馆去看书。他们各自挑了一本喜欢的书,然后在空位上看了起来。这时,小刺猬明明来了,他也捧着一本书,和……现在年轻人为什么不喜欢换手机了?最近发现身边的许多朋友都用着好几年前的手机,包括我在内,仿佛没有以前那会儿一出新手机就去买的冲动了。说到不换手机的原因,一个是现在的手机卖得越来越贵,一个是手机没有变革式……第一次煎鸡蛋作文300字篇一:第一次煎鸡蛋在我的人生中有许多第一次,在这些第一次当中,最令我难忘的就是第一次煎鸡蛋。记得我第一次煎鸡蛋那天,是三年级的时候。妈妈为了让我学点本领,就教我煎鸡……关于好态度的英语作文如果态度正确了,命运自然也就朝往正确的方向发展了,那大家会怎么写好态度呢?本文是小编为大家收集整理的好态度的。英语作文相关内容,欢迎参考借鉴。关于好态度的英语作文【一】W……国庆节日记100字以上接下来跟大家分享国庆节日记100字以上范文,希望能帮助你开拓写作思路!篇一:国庆节日记100字以上国庆节快到了,我和妈妈兴高采烈地去村里的戏台看迎国庆节目表演。到了……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网