范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

实用炫酷!这样写Python代码四两拨千斤

  作者:闲欢
  来源:Python 技术
  判断一个程序员水平的高低,不能光看他的发量,也不能光看他的代码量,还要看他代码蕴含的思想,代码的质量。代码蕴含的思想主要体现在各种设计模式的运用上,而代码的质量就既要实现需求,又要保证代码的简洁优雅。保证代码质量是需要长期积累,养成良好的编程习惯,不断思考优化的。
  今天就给大家介绍一种实用的保证代码简洁的武功—— Python 推导四式。 什么是推导式
  推导式 comprehensions(又称解析式),是 python 的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列。
  看定义很抽象,下面我们来看看具体的例子,通过例子来学习这四种推导式。列表推导式
  我们先来看一个需求:
  快速创建一个包含元素1-9的平方的列表
  面对这个需求,我们通常的实现方式是这样的:lis = [] for i in range(1, 10):     lis.append(i*i) print(lis) # [1, 4, 9, 16, 25, 36, 49, 64, 81]
  用列表推导式怎么实现呢?你只需要一行代码:lis = [x * x for x in range(1, 10)] print(list) # [1, 4, 9, 16, 25, 36, 49, 64, 81]
  这就是推导式。我们可以看到列推导式的语法是这样的:
  变量名 = [表达式 for 变量 in 列表]
  再来一个复杂点的:list = [x * y for x in range(1, 10) for y in range(1, 10)] print(lis) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]
  这个是多个变量的类型,因此我们可以扩展上面的语法:
  变量名 = [表达式 for 变量 in 列表 for 变量 in xxx]
  当然,还有一种带条件的列推导式,它的语法是这样的:
  变量名 = [表达式 for 变量 in 列表 if 条件]
  我们来看一个需求:快速创建一个包含1-10之间所有偶数的列表。lis = [i for i in range(1, 11) if i % 2 == 0] print(lis) # [2, 4, 6, 8, 10] 字典推导式
  字典推导式的形式和列表推导式类似,语法也是类似的,只不过字典推导式返回的结果是字典。
  变量名 = {key: value表达式}
  我们来看一个例子:dic = {x: x/2 for x in range(1,11) if x % 2 == 0} print(dic) # {2: 1.0, 4: 2.0, 6: 3.0, 8: 4.0, 10: 5.0}
  如果这里我写成下面这种方式,返回的结果是什么呢?dic = {"half": x/2 for x in range(1,11) if x % 2 == 0} print(dic)
  大家可以自己尝试运行一下,看跟你想的结果是不是一样的。集合推导式
  看了前面两个推导式,想必你已经知道集合推导式怎么写了。语法如下:
  变量名 = {表达式 for 变量 in 列表 for 变量 in xxx}
  或者
  变量名 = {表达式 for 变量 in 列表 if 条件}
  来一个实际的例子:创建一个存储10个偶数的集合。set1 = {x for x in range(10) if x % 2 == 0} print(set1) # {0, 2, 4, 6, 8} 元组推导式
  我们先来看一个例子:tup=(x for x in range(1,10)) print(tup) #  at 0x1101fade0>
  看到这个结果打印是不是有点懵?
  上面的代码返回的变量其实是一个生成器,并不是一个元组。其实没有真正的元组推导式,我们只能用一个类似的方法来生成元组,暂且叫做"伪元组推导式"吧。
  上面的例子我们来改进一下:tup=tuple(x for x in range(1,10)) print(tup) # (1, 2, 3, 4, 5, 6, 7, 8, 9)
  在前面加上 tuple 来显式进行类型转换就行了。总结
  这里介绍了四种 python 的推导式,主要是用来简化 循环的代码,生成不同的数据结构用的。当然,从这些基础的表达式语法出发,还可以运用到复杂的推导式,大家在写代码时留心使用就会发现它的强大之处。这种一行代码既简洁明了,又可以在新手面前炫技,用起来不要太爽!

宇宙极有可能是一个正在生长的细胞体自从人类航天发展以来,我们对宇宙进行了无尽的探索,最近有一个宇宙的全息图像引起人们的热议,图片中全息宇宙就像一个正在生长的细胞体。可能所谓的宇宙大爆炸其实就是宇宙这个无穷大的细胞正CollectionPriorityQueue源码解析,原来源码能这么简单?概述前面以JavaArrayDeque为例讲解了Stack和Queue,其实还有一种特殊的队列叫做PriorityQueue,即优先队列。优先队列的作用是能保证每次取出的元素都是队当年的华为太子,叛逃后被任正非怒砸4亿围剿,如今怎样了当年的华为太子,叛逃后被任正非怒砸4亿围剿,如今怎样了你身边有这样的人吗?从小是学霸,门门功课都非常优异,自己还特别刻苦,早早就进了名校。可到了职场上,他们却没有如预料般青云直上。出行江湖与网约车抢生意,出租车有胜算吗?网约车历经大起大落,出租车一直平平无奇,这一波谁赢了?出行行业又添赛道自动驾驶,滴滴曹操出行一喂顺风车等平台打起十二分精神抢占市场,试图赢回资本的宠爱。出租车司机不依不饶围堵无证车新系统来了荣耀Magic3系列适配MagicUI6。0PChome手机频道报道据荣耀俱乐部官微消息称,荣耀Magic3系列MagicUI6。0正式版本,现已开启不限量开放升级,荣耀Magic3荣耀Magic3Pro荣耀Magic3至臻深市数字经济企业聚焦国家战略紧抓新机遇证券时报记者吴少龙当前,数字经济引领新一轮科技创新和产业变革浪潮。国家十四五规划也提出加快数字化发展,打造数字经济新优势,擘画出建设数字中国智慧社会的宏伟蓝图。随着发展路线图逐渐明荣耀Play6TPro首批评价登场,好评率96,仅有的差评让人啼笑皆非作为荣耀最新发布的新品手机,荣耀Play6TPro在发布之前就深受消费者的喜爱。作为荣耀Play系列的最新成员,荣耀Play6TPro依然是一款走量的机型,所以在设计思路方面还是比原材料成本疯涨电动汽车制造商被迫寻求技术创新据西班牙国家报网站近日报道,美国特斯拉在几天内两次提价,比亚迪也效仿之。这家中国车企和埃隆马斯克都指出了原材料成本问题这威胁到生产出让大众买得起的电动汽车的梦想。报道称,为了保住这每月仅需959元,工薪阶层也养得起,特斯拉Model3用车成本解读最近这几年买电动车的消费者越来越多,很多电动车车主表示开习惯电动车后,再也不想开燃油车了,一是因为电动车有较好的动力和隔音表现,再就是因为电动车用车成本特别低!今天我们就以电动车界微信出了一款新的模式,适用于不识字的老年人群为什么说这项功能适用于老年人呢,原因在于,现在大多数的年轻人聊天,选择的是打字模式,不怎么喜欢发语音,对于识字的人来说,怎么发信息都无所谓,但是对于那些年纪大点,不认识字的人来说,微信可以直接听文字消息?这个偷偷上线的新功能,真的很实用微信的语音消息转文字,想必大家都经常用。当我们不听微信语音时,可以长按语音消息,选择转文字,将语音现在转换成文本进行查看。但大家有没有一种想法,我们能不能把文字消息变成语音,让手机
iPhone13系列高清渲染图变化在细节之处废话不多说直接上图先,8张高清大图看清此次iPhone13的外观设计iPhone13miniiPhone13iPhone13ProiPhone13Promax的最大变化,后置摄像头华为手表一代,至今仍然经典左华为手表一代右MOTO360一代华为手表一代的经典设计,我觉得至今没有任何手表可以超越。它是目前为止屏占比最高的全圆显示的智能手表,黑边非常小基本可以忽略,边框金属风格并略微高出OPPOReno6系列昨日开售,夺得多平台销售双冠6月6日消息,OPPO此前在5月27日发布的OPPOReno6系列在昨日迎来了首次开售,此次开售的机型有OPPOReno6Pro与OPPOReno6Pro两款型号,而在首销当日,O太阳能电池是如何将太阳能变成电能的?光伏发电技术是目前新能源技术领域里前景最广阔的技术之一,有效缓解全球能源危机和环境污染。由于太阳能不受地域限制,能源质量好清洁无污染取之不竭用之不尽以及一次投资长期受益等特点,加之全球变暖气候变化如何影响地球随着全球变暖,季节变得越来越强烈了全球变暖不是一个笑话,特别是当它的现实以你无法逃避的热浪的形式冲击你的时候。了解全球变暖和气候变化对地球的影响,为我们提供了关于地球正在经历的大调微信又迎来更新,但这一次确实有点让人无语微信性能管家上线据隔壁安卓消息,微信在近日推出了全新的安卓8。0。22版本,而这次版本更新可以说是让用户彻底懵逼。在安卓最新版微信中,微信居然给其加入了一个Matrix性能检测工具美官员称选择华为意味着放弃主权赵立坚完全是无稽之谈中新网北京5月9日电(记者邢翀)中国外交部发言人赵立坚5月9日主持例行记者会。有记者提问近日美国常务副国务卿舍曼访问非洲期间称,当一些国家选择中国华为公司作为通信商时,就意味着放弃美貌意味着基因优秀现在的社会好多都是以貌取人,美貌的人有很多的优势,不管是在外面还是在家里,美貌的人都是很受欢迎的,其实貌美的人不光只让人看着心悦,从科学的研究显示还能让后代的身体更加健康长寿。一项墨子号实现1200公里地面站之间的量子态远程传输科技日报讯(记者吴长锋)6日,记者从中国科学技术大学获悉,该校潘建伟及其同事彭承志陈宇翱印娟等利用墨子号量子科学实验卫星首次实现了地球上相距1200公里两个地面站之间的量子态远程传售后体验暖心升级三星推出全新线上手语服务5月9日,三星在国内正式推出了全新的线上手语服务,将售后服务在原有的语音在线AI三种沟通方式的基础上暖心升级。线上手语服务开通后,将减少听障用户在售后过程中可能遇到的沟通问题,并帮力学TOP期刊等离子体改性UHMWPE纤维复合材料低速冲击性能研究导读超高分子量聚乙烯纤维(UHMWPE)增强复合材料类由于具备高抗剪切性,高比吸能等特点在抗弹道冲击防护领域前景广阔。主要以层合板形式应用,但纤维表面惰性导致层间分层和界面脱粘失效