Python作为2020年必备语言之一,展现了不可替代作用。对于所有的数据科学工作者,如何提高使用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:returnprint('Your current python is %d.%d. Please use Python 3.6.' % (v.major, v.minor))exit(1)

3.使用IPython

IPython是一个增强的shell工具。可以进行代码自动补全,其实还有很多命令,我也喜欢内置的所有magic命令。比如:

  • %cd —更改当前工作目录
  • %edit —打开编辑器并在关闭编辑器后执行键入的代码
  • %env —显示当前环境变量
  • %pip install [pkgs] —在不离开交互式shell的情况下安装软件包
  • %time和%timeit—定时执行Python代码

另一个有用的功能是引用先前命令的输出。输入和输出是实际对象。你可以通过使用Out[3]来使用第三个命令的输出。

使用以下命令安装IPython:

pip3 install ipython

4.列表(list)理解

列表(list)理解可以代替丑陋的for循环来填充列表。列表理解的基本语法为:[ expression for item in list if conditional ]

一个非常简单的示例,用数字序列填充列表:

[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类。与常规类或其他替代方法(如返回多个值或字典)相比,它具有多个优点:

  • 数据类需要最少的代码
  • 你可以比较data类,因为它__eq__已为您实现
  • 你也可以轻松打印数据类以进行调试,因为它__repr__也已实现
  • data类需要类型提示,从而减少了发生错误的机会

8.就地变量交换

一项巧妙的小技巧,可以节省几行代码。

a,b = b,a

9.合并字典(Python 3.5+)

从Python 3.5开始,合并字典变得更加容易:

如果键(key)重叠,则第一个词典中的键(key)将被覆盖。

10.首字母大小写

使用capitalize()函数将字符串的首字母转为大写,其余变为小写。

"welcome".capitalize()

11.将字符串拆分为列表

你可以将字符串拆分为字符串列表。在这种情况下,我们分割空格字符:

list("welcome")

12.从字符串列表创建一个字符串

反之亦然,从上一个技巧开始,从列表中创建一个字符串,并在每个单词之间添加一个空格字符:

" ".join(['2','0','2','0'])

13.表情符号

这将使人印象深刻或被排斥,这取决于谁在寻找。更严重的是,这可以派上用场,尤其是在分析社交媒体数据时。

首先,安装表情符号模块:

pip3 install emoji

安装此程序后,您可以执行以下操作:

访问emoji库页面(https://pypi.org/project/emoji/)以获取更多示例和文档。

14.列表(list)切片

列表切片的基本语法是:a[start:stop:step]

start,stop和step是可选的。如果不填写,则默认为:

  • 0为 start
  • 字符串的结尾 end
  • step默认为1

这里有些例子:

a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]a[2:5:2]

15.反转字符串和列表

你可以从上方使用切片符号来反转字符串或列表。通过使用step=-1,将元素反转:

a[::-1]

16.展示小猫

我终于找到了一个很好的借口,可以在其中一篇文章中展示小猫了!但是,可能会使用它来显示图形等。首先,安装Pillow(https://pypi.org/project/Pillow/),它是Python图像库的一个分支:

pip3 install Pillow

现在,将该图像下载到一个名为“ kitchess.jpg”的文件中:

你可以直接从IPython进行操作:

Pillow不仅可以显示图像,还可以做更多的事情。它可以分析,调整大小,过滤,增强,变形等。有关所有功能,请参阅文档(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]获取所有唯一元素。

set(a)

19.查找最常出现的值

要在列表或字符串中查找最频繁出现的值:

test=[1,1,2,3,4,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 install progress

现在,你可以轻松创建进度条。

以下动画演示了所有可用的进度类型(动画显示可查看官网):

21.在交互式shell使用_

你可以使用下划线运算符获取最后一个表达式的结果,例如在IPython中,它看起来像:

In [1]: 3 * 3Out[1]: 9In [2]: _ + 3Out[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 = "Success!" if (y == 2) else "Failed!"

25.计数

您可以使用集合库中的Counter来获取包含列表中所有唯一元素计数的字典:

from collections import Countera=[1, 1, 2, 3, 4, 4]Counter(a)

26.比较运算符的链接

您可以在Python中链接比较运算符,以创建更易读和简洁的代码:

27.添加一些颜色

使用Colorama(https://pypi.org/project/colorama/),你可以为终端添加一些颜色。

28.处理日期

python-dateutil模块(https://pypi.org/project/python-dateutil/)提供了对标准datetime模块的强大扩展。通过以下方式安装:

pip3 install 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模块来检测文件的字符集。如果大家对Python感兴趣的话,可以加一下我的微信哦:abb436574,免费领取一套学习资料和视频课程哟~在分析大量随机文本时,这很有用。安装方式:

pip install chardet

现在你有了一个名为chardetect的额外命令行工具,它可以像这样使用

chardetect somefile.txtsomefile.txt: ascii with confidence 1.0

玩转Python? 一文总结30种Python的窍门和技巧,不可错过哈!相关推荐

  1. 玩转Python? 一文总结30种Python的窍门和技巧!

    Python作为2019年必备语言之一,展现了不可替代作用.对于所有的数据科学工作者,如何提高使用Python的效率,这里,总结了30种Python的最佳实践.技巧和窍门.希望这些可以帮助大家在202 ...

  2. python第三方库排行-140种Python标准库、第三方库和外部工具

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  3. python主要就业方向-四种Python高薪就业方向

    前言: Python使用范围很广泛,一个人精力有限,不可能精通所有的领域.就拿Python官网的Python应用领域来说,Python有以下几个方面的应用: Web Programming:Djang ...

  4. python爬虫框架排行榜-哪种Python框架适合你?简单介绍几种主流Python框架

    众所周知,Python开发框架大大减少了开发者不必要的重复劳动,提高了项目开发效率的同时,还使得创建的程序更加稳定.目前比较主流的Python框架都有哪些呢?一般大家用的比较多的是Django.Fla ...

  5. python编程制作_一种Python编程创作平台的制作方法

    本发明涉及在线浏览器技术领域,特别涉及一种Python编程创作平台. 背景技术: 目前项目整体使用javascript+html+css实现,用户界面编写上使用react框架.具体实现上是将pytho ...

  6. python最简单单例模式_5种Python单例模式的实现方式

    本文为大家分享了Python创建单例模式的5种常用方法,供大家参考,具体内容如下 所谓单例,是指一个类的实例从始至终只能被创建一次. 方法1: 如果想使得某个类从始至终最多只有一个实例,使用__new ...

  7. python优化算法工具包_12种Python 机器学习 数据挖掘工具包,一定让你受益匪浅...

    作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词).相比于C++或Java,Python让开发者能够用更少的代码表达想法. ...

  8. 价值1000元的Python原创文档,涉及“Python基础“、“Python自动化“等,免费分享!

    感谢您来到,黄同学的<原创作品>所在地,这里将会给大家分享很多实在的干货文档,供大家学习. 这四个文档分别是:<Python自动化办公手册>.<Excel数据透视表大全手 ...

  9. python文本分析库_8种Python文本处理工具集

    文本处理一般包括词性标注,句法分析,关键词提取,文本分类,情感分析等等,这是针对中文的,如果是对于英文来说,只需要基本的tokenize.本文为大家提供了以下这些工具包. 1.Jieba [结巴中文分 ...

最新文章

  1. 2 Ways Thinking In Ajax
  2. c++ 全局变量初始化的一点总结
  3. 四层交换机是什么?有什么用?与二层/三层交换机有何区别?
  4. Java中如何将List拆分为多个小list集合
  5. 在博客园的博客插入代码块(高亮、行号、缩进、着色)
  6. 基于web的通用文本标注工具MarkTool in NLP
  7. 计算机维护费可以跨年吗,航天信息服务费可以跨年抵扣吗
  8. 拖放drag drop(PyQt或Qt for python)
  9. Linux驱动开发-编写MMA7660三轴加速度传感器
  10. mysql中生成时间维度表
  11. rpx怎么算出来的?
  12. Elasticsearch:运用 Go 语言实现 Elasticsearch 搜索
  13. 面试管:用了HTTPS就安全了吗?HTTPS 会被抓包吗?
  14. windows下载Android系统源码
  15. 4:Qt Ui遇到高分屏字体显示问题
  16. 联想计算机boss设置,联想电脑bios设置图解教程
  17. 【万字长文+100余张图】轻松搞定Unix/Linux环境使用,建议收藏!
  18. 交通灯keil程序加2位数码管_带数码管显示的十字路口交通灯控制 C 程序
  19. 《iOS开发完全上手——使用iOS 7和Xcode 5开发移动与平板应用》之Objective-C新手训练营
  20. Pdf转长图用什么软件,怎么操作Pdf转长图

热门文章

  1. 互联网晚报 | 12月28日 星期二 | 百度首次在元宇宙开会;快手美团达成互联互通合作;新能源车险交易平台正式上线...
  2. 面试中遇到回答不上来的问题可以这样做
  3. anaconda降级python_anaconda python更换清华源
  4. python测试电脑性能的代码_python编程测试电脑开启最大线程数实例代码
  5. 需求分析师的基本功:逻辑思维、逻辑分析与逻辑表达
  6. 作者:司恩哲(1985-),男,现就职于中国人民银行征信中心数据部,主要研究方向为数据挖掘。...
  7. 作者:​惠丹(1991-),男,兰州大学资源环境学院硕士生。
  8. 【数据结构与算法】图结构的Java实现
  9. android studio的 jar导入问题 ‘Android Studio Failed to Create MD5 hash for file’
  10. Effective objective-C 读书笔记 (第一部分)