您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Python

Python的10个神奇的技巧

时间:2020-06-08 10:20:23  来源:  作者:

10个技巧,这些技巧将个性化并改善您的Python代码

Python的10个神奇的技巧

> (Python logo src = http://python.org/)

尽管从表面上看,Python似乎是任何人都可以学习的一种简单语言,但确实如此,许多人可能惊讶地知道一个人可以熟练掌握该语言。 Python是其中的一门很容易学习的东西,但可能很难掌握。 在Python中,通常有多种处理方法,但是很容易做错事情,或者重新发明标准库并浪费时间,这仅仅是因为您不知道模块的存在。

不幸的是,Python标准库是一个巨大的野兽,此外,其生态系统绝对是巨大的。 尽管可能有200万千兆字节的Python模块,但是您可以使用通常与Python中的科学计算相关的标准库和软件包学习一些有用的技巧。

№1:反向串

尽管看似基本,但使用char循环反转字符串可能非常繁琐且令人讨厌。 幸运的是,Python包含一个简单的内置操作来精确地执行此任务。 为此,我们只需访问字符串上的索引::-1。

a = "!dlrow olleH"

backward = a[::-1]

Python的10个神奇的技巧

 

№2:变暗作为变量

在大多数语言中,为了将数组放入一组变量中,我们需要迭代遍历值或按位置访问暗点,如下所示:

firstdim = array[1]

但是,在Python中,有一种更酷的方法。 为了将值列表更改为变量,我们可以简单地将变量名设置为等于数组,且数组长度相同:

array = [5, 10, 15, 20]

five, ten, fift, twent = array

Python的10个神奇的技巧

 

№3:Itertools

如果您打算花任何时间在Python上花费任何时间,那么您肯定会想要熟悉itertools。 Itertools是标准库中的一个模块,可让您不断解决迭代问题。 它不仅使编写复杂的循环变得容易得多,而且使您的代码更快,更简洁。 这只是Itertools用法的一个示例,但有数百个:

c = [[1, 2], [3, 4], [5, 6]]

# Let's convert this matrix to a 1 dimensional list.import itertools as

itnewlist = list(it.chain.from_iterable(c))

№4:智能开箱

迭代地解压缩值可能会非常耗时且费力。 幸运的是,Python有几种很酷的方式可以解压缩列表! 一个例子是*,它将填充未分配的值并将它们添加到变量名下的新列表中。

a, *b, c = [1, 2, 3, 4, 5]

Python的10个神奇的技巧

 

№5:枚举

如果您不了解枚举,则可能应该熟悉它。 枚举将允许您获取列表中某些值的索引。 当使用数组而不是数据框架时,这在数据科学中特别有用。

for i,w in enumerate(array):

print(i,w)

Python的10个神奇的技巧

 

№6:名字切片

在Python中拆分列表非常简单! 可以使用各种各样的出色工具,但是肯定有价值的一个功能是可以命名列表的片段。 这对于Python中的线性代数特别有用。

a = [0, 1, 2, 3, 4, 5]

LASTTHREE = slice(-3, None)

slice(-3, None, None)

print(a[LASTTHREE])

Python的10个神奇的技巧

 

№7:组相邻列表

当然可以在for循环中相当容易地对相邻循环进行分组,特别是通过使用zip(),但这当然不是最好的处理方式。 为了使事情变得更加轻松和快捷,我们可以使用zip编写一个lambda表达式,该表达式将对我们的相邻列表进行分组,如下所示:

a = [1, 2, 3, 4, 5, 6]

group_adjacent = lambda a, k: zip(*([iter(a)] * k))

group_adjacent(a, 3)

[(1, 2, 3), (4, 5, 6)]

group_adjacent(a, 2)

[(1, 2), (3, 4), (5, 6)]

group_adjacent(a, 1)

№8:生成器的next()迭代

在编程的大多数正常情况下,我们可以使用一个计数器来访问一个索引并获取我们的仓位号,该计数器将只是添加到以下值的值:

array1 = [5, 10, 15, 20]

array2 = (x ** 2 for x in range(10))

counter = 0for i in array1:

# This code wouldn't work because 'i' is not in array2.

# i = array2[i]

i = array2[counter]

# ^^^ This code would because we are accessing the position of i

但是,我们可以使用next()代替它。 Next使用一个迭代器,该迭代器将当前位置存储在内存中,并在后台遍历列表。

g = (x ** 2 for x in range(10))

print(next(g))

print(next(g))

Python的10个神奇的技巧

 

№9:Counter

标准库中另一个很棒的模块是集合,我今天想向您介绍的是集合中的计数器。 使用Counter,我们可以轻松获得列表的计数。 这对于获取数据中的值总数,获取数据的空计数以及查看数据的唯一值很有用。 我知道你在想什么

"为什么不只使用Pandas?"

这当然是正确的观点。 但是,使用Pandas进行自动化无疑会更加困难,并且只是在部署算法时需要将其添加到虚拟环境中的另一个依赖项。 此外,Python中的计数器类型具有Pandas系列所没有的许多功能,这使其在某些情况下更加有用。

A = collections.Counter([1, 1, 2, 2, 3, 3, 3, 3, 4, 5, 6, 7])

A

Counter({3: 4, 1: 2, 2: 2, 4: 1, 5: 1, 6: 1, 7: 1})

A.most_common(1)

[(3, 4)]

A.most_common(3)

[(3, 4), (1, 2), (2, 2)]

№10:出队

收集模块中另一个很棒的事情是出队。 看看我们可以用这种类型做的所有整洁的事情!

import collections

Q = collections.deque()

Q.Append(1)

Q.appendleft(2)

Q.extend([3, 4])

Q.extendleft([5, 6])

Q.pop()

Q.popleft()

Q.rotate(3)

Q.rotate(-3)

print(Q)

Python的10个神奇的技巧

 

(本文翻译自Emmett Boudreau的文章《10 Smooth Python Tricks For Python Gods》,参考:
https://towardsdatascience.com/10-smooth-python-tricks-for-python-gods-2e4f6180e5e3)



Tags:Python   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
大家好,我是菜鸟哥,今天跟大家一起聊一下Python4的话题! 从2020年的1月1号开始,Python官方正式的停止了对于Python2的维护。Python也正式的进入了Python3的时代。而随着时间的...【详细内容】
2021-12-28  Tags: Python  点击:(1)  评论:(0)  加入收藏
学习Python的初衷是因为它的实践的便捷性,几乎计算机上能完成的各种操作都能在Python上找到解决途径。平时工作需要在线学习。而在线学习的复杂性经常让人抓狂。费时费力且效...【详细内容】
2021-12-28  Tags: Python  点击:(1)  评论:(0)  加入收藏
Python 是一个很棒的语言。它是世界上发展最快的编程语言之一。它一次又一次地证明了在开发人员职位中和跨行业的数据科学职位中的实用性。整个 Python 及其库的生态系统使...【详细内容】
2021-12-27  Tags: Python  点击:(2)  评论:(0)  加入收藏
菜单驱动程序简介菜单驱动程序是通过显示选项列表从用户那里获取输入并允许用户从选项列表中选择输入的程序。菜单驱动程序的一个简单示例是 ATM(自动取款机)。在交易的情况下...【详细内容】
2021-12-27  Tags: Python  点击:(4)  评论:(0)  加入收藏
近日只是为了想尽办法为 Flask 实现 Swagger UI 文档功能,基本上要让 Flask 配合 Flasgger, 所以写了篇 Flask 应用集成 Swagger UI 。然而不断的 Google 过程中偶然间发现了...【详细内容】
2021-12-23  Tags: Python  点击:(6)  评论:(0)  加入收藏
有不少同学学完Python后仍然很难将其灵活运用。我整理15个Python入门的小程序。在实践中应用Python会有事半功倍的效果。01 实现二元二次函数实现数学里的二元二次函数:f(x,...【详细内容】
2021-12-22  Tags: Python  点击:(32)  评论:(0)  加入收藏
Verilog是由一个个module组成的,下面是其中一个module在网表中的样子,我只需要提取module名字、实例化关系。module rst_filter ( ...); 端口声明... wire定义......【详细内容】
2021-12-22  Tags: Python  点击:(8)  评论:(0)  加入收藏
运行环境 如何从 MP4 视频中提取帧 将帧变成 GIF 创建 MP4 到 GIF GUI ...【详细内容】
2021-12-22  Tags: Python  点击:(6)  评论:(0)  加入收藏
面向对象:Object Oriented Programming,简称OOP,即面向对象程序设计。类(Class)和对象(Object)类是用来描述具有相同属性和方法对象的集合。对象是类的具体实例。比如,学生都有...【详细内容】
2021-12-22  Tags: Python  点击:(9)  评论:(0)  加入收藏
所谓内置函数,就是Python提供的, 可以直接拿来直接用的函数,比如大家熟悉的print,range、input等,也有不是很熟,但是很重要的,如enumerate、zip、join等,Python内置的这些函数非常...【详细内容】
2021-12-21  Tags: Python  点击:(5)  评论:(0)  加入收藏
▌简易百科推荐
大家好,我是菜鸟哥,今天跟大家一起聊一下Python4的话题! 从2020年的1月1号开始,Python官方正式的停止了对于Python2的维护。Python也正式的进入了Python3的时代。而随着时间的...【详细内容】
2021-12-28  菜鸟学python    Tags:Python4   点击:(1)  评论:(0)  加入收藏
学习Python的初衷是因为它的实践的便捷性,几乎计算机上能完成的各种操作都能在Python上找到解决途径。平时工作需要在线学习。而在线学习的复杂性经常让人抓狂。费时费力且效...【详细内容】
2021-12-28  风度翩翩的Python    Tags:Python   点击:(1)  评论:(0)  加入收藏
Python 是一个很棒的语言。它是世界上发展最快的编程语言之一。它一次又一次地证明了在开发人员职位中和跨行业的数据科学职位中的实用性。整个 Python 及其库的生态系统使...【详细内容】
2021-12-27  IT资料库    Tags:Python 库   点击:(2)  评论:(0)  加入收藏
菜单驱动程序简介菜单驱动程序是通过显示选项列表从用户那里获取输入并允许用户从选项列表中选择输入的程序。菜单驱动程序的一个简单示例是 ATM(自动取款机)。在交易的情况下...【详细内容】
2021-12-27  子冉爱python    Tags:Python   点击:(4)  评论:(0)  加入收藏
有不少同学学完Python后仍然很难将其灵活运用。我整理15个Python入门的小程序。在实践中应用Python会有事半功倍的效果。01 实现二元二次函数实现数学里的二元二次函数:f(x,...【详细内容】
2021-12-22  程序汪小成    Tags:Python入门   点击:(32)  评论:(0)  加入收藏
Verilog是由一个个module组成的,下面是其中一个module在网表中的样子,我只需要提取module名字、实例化关系。module rst_filter ( ...); 端口声明... wire定义......【详细内容】
2021-12-22  编程啊青    Tags:Verilog   点击:(8)  评论:(0)  加入收藏
运行环境 如何从 MP4 视频中提取帧 将帧变成 GIF 创建 MP4 到 GIF GUI ...【详细内容】
2021-12-22  修道猿    Tags:Python   点击:(6)  评论:(0)  加入收藏
面向对象:Object Oriented Programming,简称OOP,即面向对象程序设计。类(Class)和对象(Object)类是用来描述具有相同属性和方法对象的集合。对象是类的具体实例。比如,学生都有...【详细内容】
2021-12-22  我头秃了    Tags:python   点击:(9)  评论:(0)  加入收藏
所谓内置函数,就是Python提供的, 可以直接拿来直接用的函数,比如大家熟悉的print,range、input等,也有不是很熟,但是很重要的,如enumerate、zip、join等,Python内置的这些函数非常...【详细内容】
2021-12-21  程序员小新ds    Tags:python初   点击:(5)  评论:(0)  加入收藏
Hi,大家好。我们在接口自动化测试项目中,有时候需要一些加密。今天给大伙介绍Python实现各种 加密 ,接口加解密再也不愁。目录一、项目加解密需求分析六、Python加密库PyCrypto...【详细内容】
2021-12-21  Python可乐    Tags:Python   点击:(8)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条