作为2019年的必备语言之一,Python显示出不可替代的作用。对所有数据科学工作者来说,如何提高Python的使用效率,这里就总结了Python在30个方面的最佳实践、技巧和诀窍。但愿这能帮助每个人在2020年提高工作效率,并从中学到一些有用的东西。
一、使用Python3
官方的Python声明:Python2从2020年1月1日开始正式不支持。这篇文章中有一些仅适用于Python3的示例。假如你的Python版本是2.7,那就赶快升级到Python3.x。
检查您需要的Python最小版本。
您可以检查您的Python代码中的版本,以确保没有使用不兼容的版本运行脚本。用简单的检查:
importsy
查看python版本,如果低于3.5,请退出程序。
Defcheck_version():
v=sys.version_
*#print(v)#sys.version_info(major=3,minor=6,micro=5,releaselevel=‘final’,serial=0)
ifv.major==3andv.minor>=5:
回车。
(v.major,v.minor))print(‘Yourcurrentpythonis%d.%d.PleaseusePython3.6.’%)
扩展(1)
三、使用IPython
玩Python游戏?本文总结了30个Python小贴士。
IPython是一种增强的外壳工具。能够实现自动补全的命令确实有很多,我也喜欢所有内置magic命令。例如:
%cd—当前的工作目录更改。
%edit—关闭编辑器后,打开编辑器并执行键入的代码。
%env—显示当前的环境变量。
%pipinstall[pkgs]—无需离开交互shell即可安装软件包。
%time和%timeit—Python代码的定时执行。
另外一个有用的特性是引用前面命令的输出。投入产出是实际的对象。通过使用Out[3],您可以使用第三个命令的输出结果。
安装IPython时使用以下命令:
三个实例库。
4.列表(列表)说明。
list理解可以用一个难看的for循环来替换列表。了解列表的基本语法为:[expressionforiteminlistifconditional]
使用数字序列填充列表的非常简单的例子:
[iforiinrange(10)]
由于表达式可以被使用,因此也可以进行一些数学运算,甚至调用外部函数。
最终,您可以使用if过滤列表。本例中,我们只保留可以被2整除的值:
[iforiinrange(10)ifi%2==0]
检查对象对内存的使用情况。
通过sys.getsizeof(),您可以对对象进行内存使用检查。
返回一个以上的值。
Python中的函数不需要字典、列表或类就可以返回多个变量。
这适用于有限数量的返回值。但任何多于3个值的值应该放在一个类中。
7.使用数据类。
在Python3.7版本中,Python提供了data类。它相对于一般的类或其他替代方法(例如返回多个值或字典)有以下几个优点:
一个数据类只需要少量代码。
由于data类__eq__已经实现,因此可以对其进行比较。
您还可以轻松地打印用于调试的数据类,因为它也实现了__repr__。
Data类需要类型提示,因此错误几率较小。
8.就地变量的转换。
一个巧妙的小技巧,可以节省几行代码。
b=b,a。
9.综合词典(Python3.5)
在Python3.5的基础上,合并dictionary更加简单:
如键(key)重叠,则会覆盖第一个字典中的键(key)。
10.大小写字母缩写。
用capitalize()函数把字符串的首字母改为大写,其他的改为小写。
(a)“welcome”.capitalize
把字符串分成若干个列表。
您可以将字符串分解为一个字符串列表。本例中,我们分割空白字符:
列表(“welcome”)
从字符串列表中创建字符串。
反过来也一样,从前面的技巧开始,从列表中创建一个字符串,然后在每个单词之间加上空格:
".join([‘2’,‘0’,‘2’])
十三、表情符号。
玩Python游戏?本文总结了30个Python小贴士。
它会给人留下深刻的印象,也会受到人们的排斥。更为重要的是,这会派上用场,特别是在分析社会媒体数据方面。
先安装一个表情模块:
Pip3installemoji
在安装该程序之后,可以进行下列操作:
请访问emojiLibrary页面(https://pypi.org/project/emoji/)以获得更多的示例和文档。
14.列表(列表)部分。
listslist的基本语法是:a[start:stop:step]
启动、停止和终止都是可选的。若未填写,默认情况是:
零为初始值。
string的末尾结束。
缺省值是1。
以下是一些例子:
a=[0,1,2,3,4,5,6,7,8,9]a[2:5:2]
十五、字符串和列表反转。
您可以使用正上方的切片符号反转字符串或列表。用step=-1反转元素:
a[::1]
十六、展示小猫。
玩Python游戏?本文总结了30个Python小贴士。
最后,我找到了一个很好的借口,可以把小猫放进一篇文章里!不过,可以用它来显示图形等等。第一,安装Pillow(https://pypi.org/project/Pillow/),这是Python图像库的一个分支:
Pip3installPillow是什么?
下面,将此图下载到名为“kitchess.jpg”的文件中:
您可以从IPython直接操作:
玩Python游戏?本文总结了30个Python小贴士。
皮洛不仅能显示图像,还能做很多事情。可进行分析、调整、过滤、增强、变形等。请参考文档(https://pillow.readthedocs.io/en/stable/)以获得所有功能。
17.使用地图()
其中一个Python内置的函数叫做map()。地图()的语法如下:
(function,something_iterable)
所以你给了它要执行的函数,以及要执行的特定函数。它可以是任何可重复的东西。对于下面的例子,我将使用列表a=[0,1,2,3,4,5,6,7,8,9]。
列表(map(lambdax:x+1,a))
查看您自己的代码,看看map()是否可以在某个地方使用,而非循环!
从清单或字串中取得惟一的项目。
您可以使用set()函数创建一个集合,您可以从一个列表或类似列表的对象中获得所有惟一元素,a=[1,1,2,3,4,4]。
塞特(a)
19.查找出现频率最高的值。
查找列表或字符串中最频繁出现的值:
测试=[1,1,2,3,4,4,4,4,4]
你知道为什么会这样吗?请你自己弄清楚后再读下去。你没试过吧?反正我要告诉你:
mx()返回列表中最大的值。这个密钥参数接受一个参数函数,它来自定义排序顺序,在这里是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.建立进度表。
您可以创建自己的进度条,非常有趣。但进度包的使用更快:
pip3installprogress是什么?
您现在可以方便地创建进度条。
下列动画展示了所有可以使用的进度类型(动画显示可在网站上查看):
玩Python游戏?本文总结了30个Python小贴士。
21.互动shell中使用_
您可以使用下划线操作符获得最后一个表达式的结果,例如,在IPython中,该操作符如下:
输入[1]:3*3Out[1]:9In[2]:_+3Out[2]:12。
在PythonShell中也可以使用它。另外,IPythonshell允许使用Out[n]获取In[n]中表达式的值,例如,Out[1]在上面的例子中,_可以得到9。
22.Web服务器的快速创建。
您可以快速启动Web服务器为当前目录提供内容:
python3-mhttp.serv
这对于和同事分享东西,或者测试一个简单的HTML站点都非常有用。
23.多行字符串
虽然在代码中可以用三引号包含多行字符串,但是这样做并不理想。放置在三个引号之间的所有东西都会变成字符串,包括下面的格式。第二种方法我比较喜欢,它将多个行连接在一起,从而使代码格式良好。惟一缺点是您需要显式地添加新行。
24.条件赋值中使用的三元操作符。
这样做可以使代码更加简洁,同时又保持可读性:
[on_true]if[扩展]else[on_false]
举例来说:
x="Success!“if(y==2)else"failed!”
25.计数
通过使用集合库中的Counter,可以获得一个字典,其中包含列表中所有唯一的元素计数:
FromcollectionsimportCountera=[1,1,2,3,4,4]Counter(a)
26.操作符的比较链接。
在Python中,可以链接这些比较操作符来创建更易读更简洁的代码:
27.增加一些颜色。
玩Python游戏?本文总结了30个Python小贴士。
你可以用Colorama(https://pypi.org/project/colorama/)给终端加一些颜色。
二十八、处理日期。
python-dateutil模块(https://pypi.org/project/python-dateutil/)为标准的datetime模块提供了强大的扩展。使用下列方法安装:
pip3installpython-dateutil:
使用这个库您可以做许多很酷的事情。对于这个例子,我只给出我认为特别有用的:日志文件中日期的模糊解析等等。
只要记住:Pythondateutil的常规日期功能结束于何处,python-dateutil就会出现!
29.整数分割。
玩Python游戏?本文总结了30个Python小贴士。
在Python2中,除非操作数之一是浮点数,否则除法运算符(/)默认为整数除法。所以你的行为如下:
25/2#Python25/2.0=2.5。
在Python3中,除法操作符默认为浮点数除法,而//操作符则变成了整数除法。所以我们得到:
python35/2=2.55//2=2。
您应该阅读PEP-0238了解这一更改背后的全部动机(https://www.python.org/dev/peps/pep-0238/)。
30.使用chardet检测字符集。
使用chardet模块可以检测文件的字符集。这对于分析大量的随机文本非常有用。如何安装:
皮皮installchardet
既然您有了额外的命令行工具chardetect,就可以像这样使用它。
txtsomefile.txt:asciiwithconfidence1.0。
您也可以通过程序使用这个库,请参阅docs(https://chardet)。
更多精彩内容请关注:
http://daduchang.net/446917.html
http://daduchang.net/446916.html
http://daduchang.net/446915.html
http://daduchang.net/446914.html
http://daduchang.net/446913.html