Python作为2019年的必备语言之一,发挥了不可替代的作用。对于所有数据科学家来说,如何提高使用Python的效率?这里总结了30个Python最佳实践、技
Python作为2019年的必备语言之一,发挥了不可替代的作用。对于所有数据科学家来说,如何提高使用Python的效率?这里总结了30个Python最佳实践、技巧和诀窍。希望这些能帮助你在2020年提高工作效率,并在这个过程中学到一些有用的东西。
1. 使用Python 3
Python官方宣布,2020年1月1日起不再正式支持Python 2。本文有一堆只能在Python 3中工作的例子。如果你的版本还是Python 2.7,赶紧升级到Python 3.x。
2.检查所需的最低Python版本
您可以检查代码中的Python版本,以确保没有使用不兼容的版本来运行脚本。使用以下简单的检查:
import sys# 检查python版本,如果是低于3.5就退出程序def check_version(): v = sys.version_info # print(v) # sys.version_info(major=3, minor=6, micro=5, releaselevel='final', serial=0) if v.major == 3 and v.minor >= 5: return print('Your current python is %d.%d. Please use Python 3.6.' % (v.major, v.minor)) exit(1)3.使用IPython
导入sys# Check python版本,如果低于3.5,退出程序def Check _ version():v = sys . version _ info # print(v)# sys . version _ info(major = 3,minor = 6,micro = 5,release level = & # 39最终& # 39;,serial=0)如果v.major == 3且v.minor & gt= 5:返回打印(& # 39;您当前的python是%d.%d。请使用Python 3.6。'% (v大调,v小调))出口(1)3。使用IPython
IPython是一个增强的shell工具。您可以自动完成代码。其实有很多命令。我也喜欢所有内置的魔法命令。例如:
%cd —更改当前工作目录%edit —打开编辑器并在关闭编辑器后执行键入的代码%env —显示当前环境变量%pip install [pkgs] —在不离开交互式shell的情况下安装软件包%time和%timeit—定时执行Python代码
另一个有用的功能是引用前面命令的输出。输入和输出是实际的对象。您可以通过使用Out[3]来使用第三个命令的输出。
使用以下命令安装IPython:
pip3安装ipython
4.列表(list)理解
对list的理解可以代替难看的for循环来填充list。列表的基本语法是:[如果有条件,列表中项目的表达式]
用数字序列填充列表的一个非常简单的例子:
[i for i in range(10)]
而且因为可以使用表达式,还可以做一些数学运算,甚至调用外部函数。
最后,您可以使用if来过滤列表。在这种情况下,我们只保留可被2整除的值:
[i for i in range(10) if i%2==0]
5.检查对象的内存使用情况
使用sys.getsizeof(),可以检查对象的内存使用情况。
6.返回多个值
Python中的函数可以返回多个变量,无需字典、列表或类。
对于有限数量的返回值,这是可以的。但是任何超过3个值的都应该放入类中。
7.使用data类
从Python 3.7版开始,Python提供了数据类。与传统的类或其他替代方法(如返回多个值或字典)相比,它有几个优点:
数据类需要最少的代码你可以比较data类,因为它__eq__已为您实现你也可以轻松打印数据类以进行调试,因为它__repr__也已实现data类需要类型提示,从而减少了发生错误的机会8.就地变量交换
一个可以节省几行代码的聪明绝招。
a,b = b,a
9.合并字典(Python 3.5+)
从Python 3.5开始,合并字典变得更加容易:
如果关键字重叠,第一个字典中的关键字将被覆盖。
10.首字母大小写
使用capital()函数将字符串的第一个字母大写,其余字母小写。
"欢迎& # 34;。大写()
11.将字符串拆分为列表
您可以将一个字符串拆分成一个字符串列表。在这种情况下,我们拆分空大小写字符:
列表(& # 34;欢迎& # 34;)
12.从字符串列表创建一个字符串
反之亦然,从最后一个技巧开始,从列表中创建一个字符串,并在每个单词之间添加一个空大小写字符:
""。加入([& # 39;2','0','2','0'])
13.表情符号
这将是令人印象深刻的或被排斥的,取决于谁在看。更严重的是,这可以派上用场,特别是在分析社交媒体数据时。
首先,安装表情模块:
pip3安装表情
安装此程序后,您可以执行以下操作:
请访问表情库页面(https://pypi.org/project/emoji/)查看更多示例和文档。
14.列表(list)切片
切片的基本语法是:a[start:stop:step]
开始、停止和步进是可选的。如果未填写,默认为:
0为 start字符串的结尾 endstep默认为1
以下是一些例子:
A = [0,1,2,3,4,5,6,7,8,9] A [2: 5: 2] 15。反转字符串和列表您可以使用上面的切片符号来反转字符串或列表。使用step=-1反转元素:
a[::-1]16.展示小猫
枕头不仅可以显示图像,还可以做更多的事情。它可以分析,调整大小,过滤,增强,变形等。所有功能请参考文档(https://pillow . readthedocs . io/en/stable/)。
17.使用map()
Python的内置函数之一叫做map()。map()的语法是:
map(function,something_iterable)
因此,您向它提供要执行的功能和一些要执行的功能。这可以是任何可以迭代的东西。在下面的例子中,我将使用一个列表a=[0,1,2,3,4,5,6,7,8,9]。
List(map(lambda x: x+1,a))看一下自己的代码,看看能不能在某个地方使用map(),而不是循环!
18.从列表或字符串中获取唯一元素
通过使用set()函数创建一个集合,可以从一个列表中的a=[1,1,2,3,4,4]或一个类似列表的对象中获取所有唯一的元素。
设置(a)19。查找最常出现的值查找列表或字符串中最常出现的值:
Test=[1,1,2,3,4,4,4]你知道这是为什么吗?在继续阅读之前,请自行了解。你没有努力,是吗?无论如何,我会告诉你:
max()将返回列表中的最大值。该key参数采用单个参数函数来自定义排序顺序,在本例中为test.count。该函数应用于迭代器上的每个项目。test.count是list的内置函数。它接受一个参数,并将计算该参数的出现次数。因此test.count(1)将返回2,test.count(4)返回4。set(test) 返回测试的所有唯一值,因此{1、2、3、4} 因此,我们在单行代码中所做的就是获取test的所有唯一值,即{1, 2, 3, 4}。接下来,max将list.count函数应用到它们并返回最大值。20.创建一个进度条
你可以创建自己的进度条,很有意思。但是使用进度包更快:
pip3安装进度
现在,你可以轻松地创建一个进度条。
以下动画演示了所有可用的进度类型(动画显示的是官网):
21.在交互式shell使用_
您可以使用下划线运算符来获得最后一个表达式的结果。例如,在IPython中,它看起来像:
in[1]:3 * 3 out[1]:9 in[2]:_+3 out[2]:12这也可以用在Python Shell中。此外,IPython shell允许使用Out[n]来获取In [n]中表达式的值。比如上面例子中的Out[1],_可以得到数字9。
22.快速创建Web服务器
您可以快速启动Web服务器来提供当前目录的内容:
python3 -m http.server
如果你想和同事分享一些东西或者测试一个简单的HTML网站,这将会很有用。
23.多行字符串
尽管您可以在代码中使用三个引号来包含多行字符串,但这并不理想。放在三个引号之间的所有内容都将变成一个字符串,包括格式,如下所示。我更喜欢第二种方法,它将多行连接在一起,可以很好地格式化代码。唯一的缺点是您需要显式添加一个换行符。
24.三元运算符,用于条件赋值
这是在保持可读性的同时使代码更加简洁的另一种方法:
[on _ true]if[expression]else[on _ false]
例如:
x = & # 34成功!"if(y = = 2)else & # 34;失败了!"25.Count您可以使用集合库中的计数器来获取包含列表中所有唯一元素的计数的字典:
从集合导入计数器a = [1,1,2,3,4,4]计数器(a) 26。链接到比较运算符您可以在Python中链接比较运算符,以创建可读性更强、更简洁的代码:
27.添加一些颜色
使用Colorama(https://pypi . org/project/Colorama/),可以给终端添加一些颜色。
28.处理日期
Python-dateutil模块(https://pypi.org/project/python-dateutil/)为标准日期时间模块提供了强大的扩展。以下列方式安装:
pip3安装python-dateutil
你可以用这个库做很多很酷的事情。我将把例子限制在我认为特别有用的一个:日志文件中日期的模糊解析,等等。
只要记住:在常规Python日期时间函数结束的地方,python-dateutil出现了!
29.整数除法
在Python 2中,除法运算符(/)默认为整数除法,除非其中一个操作数是浮点数。因此,您有以下行为:
# #Python 2 5/2 = 2 5/2.0 = 2.5在Python 3中,除法运算符默认为浮点除法,//运算符变成了整数除法。所以我们得到:
#Python 3 5/2 = 2.5 5 // 2 = 2关于这一变化背后的全部动机,你应该去读读PEP-0238(https://www . Python . org/dev/peps/PEP-0238/)。
30.使用chardet进行字符集检测
您可以使用chardet模块来检测文件的字符集。这在分析大量随机文本时很有用。安装方法:
pip安装chardet
现在您有了一个额外的命令行工具chardetect,可以这样使用。
chardetect some file . txt some file . txt:ASCII with confidence 1.0你也可以通过编程来使用这个库。请参考文档(https://char det . readthedocs . io/en/latest/usage . html)。
开始新的一年的30个Python提示和技巧。希望大家喜欢。如有疑问,欢迎随时评论!
参考:https://towardsdatascience . com/30-python-best-practices-tips-and-tricks-CAE FB 9 F8 C5 f 5
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。
作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/247265.html