您好,登录后才能下订单哦!
本篇文章给大家分享的是有关22个Python实用技巧分别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
被人工智能捧红的 Python 已是一种发展完善且非常多样化的语言,其中肯定有一些你尚未发现的功能。那么今天或许我能够让你学到一些新技巧。
Python的发展:
“人生苦短,我用 Python”,Python 的经典 slogan 讲究争分夺秒,自 20 世纪 90 年代初首次录入 TIOBE,Python 花了 10 年才首次进入指数前 10 名,随着它的不断应用与发展,Python 逐渐在网络安全与数据科学等领域大放异彩。
Python 最初是 Perl 的继承者,用于编写构建脚本,并且作为一种胶水语言,它被广泛用于连接各种软件组件。但随着不断应用与发展,Python 逐渐进入了其它领域,比如网络安全与数据科学。如今,在大型嵌入式系统中运行 Python 也变得非常普遍,并且随着人工智能与数据分析等领域的大热,Python 也得到了前所未有的高度关注,相信它也会保持向前。
目前在全球范围内它已经是大学的首选编程语言,同时也征服了工业界。越来越多人使用 Python,反映在 TIOBE 指数上就是它稳扎稳打地一步步向上爬,从前 10 到前 5,如今终于进入了前 3。
Python的必备技巧:
1、简洁的表达式
点评:Python因为简洁高效而出名,就是因为语法非常简单,而且内置了很多强大的数据结构:
比如我们可以大量用推导列表来生成很多简洁的代码
比如我们可以用if else组合,本来需要2-3行代码写的,一行搞定!
2、排序
忽略想起了一句台词,“有人的地方就有江湖”,那么有数组这样的数据结构一定涉及到排序,取最大值,取最小值。
点评:这个heapq库非常好用,尤其是我们在取一些列表的头部数据,比如最大几个,最小几个经常用到,很实用的一招!啥也不说了,赶紧背下来!
3、查询
排序和查询都是好基友,长的数据结构里面(字典,列表)里面我们一定会有查询,过滤的需求。有的时候,我们需要从一个很长的列表里面,找到某一个或者某一类的元素,怎么办,很简单,用高级函数filter :
1).用lambda配合filter过滤
点评:lambda是一个非常简洁的函数表达方式,短小精悍,加上配合filter一起使用,非常漂亮。比如我们通过 字符串里的startswith内置函数,非常方便的过滤出列表里面我们需要的数据!(Python3稍微改一下再filter之外再加一个list,不然生成的是迭代器地址)
点评:正则是一个非常不错的过滤方法,有的时候好的正则顶的上几十行代码,精通正则对玩数据分析,数据清洗是必需的技能!
4、碾平list
有的时候我们会遇到复杂的数据结构,比如列表里面套列表,层层嵌套,非常麻烦。可以碾平的方法:
传统方法
点评:这里面就是用递归来解决的,思路非常简单清晰,但是递归一定要有出口,设计的时候要注意。
另外还有两种高手的写法,理解起来比较复杂,这里就不过多说明,感兴趣的可以找一找。
5、带条件的推导列表
推导列表应该是我最喜欢的一种Pythonic方式,它的演变有很多手法,这几种都是非常常见的,多读几遍,背下来!
6、漂亮的添加字典的方法
设计数据结构的时候,字典是必须的!很多时候我们会用带下面的字典更新的方法,当然更好的是collections模块里面的defaultdict!
点评:dict.update还是比较平易近人的,这个dict(dict,**options)用法我第一次看到的时候也是楞了一些,什么鬼,现在见多了,也就习惯了!
Python的精选技巧:
1、all 或 any
Python 如此受欢迎,原因之一是因为它具有可读性和可表达性。
人们经常开玩笑说 Python 是“可执行的伪代码”,但是当你可以这样编写代码时,你就很难反驳了。
2、bashplotlib
你想在控制台(console)上绘制图形吗?
1$ pip install bashplotlib
这样你在控制台中就可以绘制图形了。
3、集合
Python 内置默认的数据类型,但有时它们的使用效果会不尽如人意。
幸运的是,Python 的标准库提供了 collections 模块,这个方便的附加库提供了更多的数据类型。
from collections import OrderedDict, Counter
x = OrderedDict(a=1, b=2, c=3)
y = Counter("Hello World!")
4、dir
你是否曾经有过深入 Python 对象内部并且观察它具备哪些属性的想法呢?
输入下述命令行:
以交互式运行 Python 时,这是一个非常实用的特征,并且可以动态地搜索正在使用的对象和模块。
5、emoji
Python 包含 emoji 模块,在这里!
$ pip install emoji
别以为我不知道你会偷偷下载...
6、原地交换两个数字
Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法,请参见下面的示例:
x,y= 10,20print(x,y)x,y= y,xprint(x,y)#1 (10, 20)#2 (20, 10)
赋值的右侧形成了一个新的元组,左侧立即解析(unpack)那个(未被引用的)元组到变量和 。
一旦赋值完成,新的元组变成了未被引用状态并且被标记为可被垃圾回收,最终也完成了变量的交换。
7、from _future_import
Python 流行的一个结果是新版本总是在开发中。新版本意味着新功能——除非版本已经过时
不过别担心。_future_module 允许用户通过函数导入新版本 Python 的功能。这就像是时间旅行,或是奇异魔法之类......
from __future__ import print_function
print("Hello World!")
为什么不导入花括号呢?
8、geopy
地理(Geography)对于程序员来说可能是一个具有挑战性的领域。但是 geopy 模块让它变得异常简单。
$ pip install geopy
它通过抽取一系列不同地理编码服务的 API 来工作,使用户获取一个地方的完整街道地址、纬度、经度,甚至海拔高度。
另外一个有用的功能是距离:它可以用你喜欢的度量单位计算出两个位置之间的距离。
9、链状比较操作符
比较操作符的聚合是另一个有时很方便的技巧:
n= 10result= 1< n< 20print(result)# Trueresult= 1> n<= 9print(result)# False
10、howdoi
受困于编程问题并且不记得之前看到过的解决方法?用户需要使用 StackOverflow ,但是不想离开终端?
那么需要使用这个非常使用的命令行工具 howdoi
$ pip install howdoi
无论你有什么问题,它都会帮你解答。
但是请注意,它会从 StackOverflow 的最高票答案中抓取代码,这意味着它的回答并不总是最有用的。
$ howdoi exit vim
11、inspect
Python 的 inspects 模块对于理解背后的原理是非常有帮助的。用户甚至可以在 inspect 模块上调用其方法!
下述代码示例使用
inspect.getsource()
来打印它的源代码。同时它也使用
inspect.getmodule()
来打印定义它的模块。
最后一行代码打印出自身的行号。
当然,除去这些简单的用途之外,inspect 模块对于理解代码的作用也非常有用。你也可以使用它来写自编文档代码。
12、交互环境下的 “_” 操作符
这是一个我们大多数人不知道的有用特性,在 Python 控制台,不论何时我们测试一个表达式或者调用一个方法,结果都会分配给一个临时变量: _(一个下划线)。
>>> 2+ 13>>> _3>>> print_3
13、List Comprehensions
关于 Python 编程,我最喜欢的事情之一是它的列表生成式(List Comprehensions),
这些表达式可以很容易编写出简洁的代码,读起来几乎就像自然语言一样。
14、Jedi
Jedi 库是一个自动完成和代码分析的库。它能够使编写代码更为快速、更为高效。
除非你正在开发自己的 IDE,否则你可能对使用 Jedi 作为编辑器插件最感兴趣。幸运的是,现在加载这个插件已经可以用了!不过,你可能已经用上Jedi 了。IPython 项目的代码自动完成功能就是使用Jedi来实现的。
15、map
Python 通过许多内置功能支持函数式编程。map() 函数是最有用的函数之一——特别是当它与 lambda 函数结合使用时。
在上面的例子中,map() 将一个简单的 lambda 函数应用于 x 中的每个元素。它返回一个 map 对象,该对象可以被转换成可迭代的对象,如列表或元组。
16、**kwargs
在学习任何语言的过程中,都会遇到许多里程碑。使用Python,理解神秘的 **kwargs 语法可能就是其中之一。
dictionary 对象前面的双星号允许您将该 dictionary 的内容作为命名参数传递给函数。
dictionary 的键是参数名,值是传递给函数的值。你甚至不需要叫它 kwargs!
当你想编写可以处理未预先定义的命名参数的函数时,这就非常有用了。
以上就是22个Python实用技巧分别是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。