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

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789

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

№1:反向串

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

a = "!dlrow olleH" 
 
backward = a[::-1] 

№2:变暗作为变量

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

firstdim = array[1] 

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

array = [5, 10, 15, 20] 
 
five, ten, fift, twent = array 

№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] 

№5:枚举

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

for i,w in enumerate(array): 
 
print(i,w) 

№6:名字切片

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

a = [0, 1, 2, 3, 4, 5] 
 
LASTTHREE = slice(-3, None) 
 
slice(-3, None, None) 
 
print(a[LASTTHREE]) 

№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)) 

№9:Counter

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

"为什么不只使用Pandas?"

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

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

 
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个神奇的技巧的更多相关文章

  1. 关于Python的10大实用编程技巧

      Python 是一种通用的脚本开发语言,比其他编程语言更加简单.易学,其面向对象特性甚至比Java.C#..NET更加彻底,因此非常适合快速开发. Python 已经成为最受欢迎的程序设计语言之一 ...

  2. Python 内编写类的各种技巧和方法

    Python 内编写类的各种技巧和方法 简介 有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象 ...

  3. Python中编写类的各种技巧和方法

    简介 有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Pickling). 你可以把它当作一 ...

  4. python爬虫抓站的一些技巧总结

    使用python爬虫抓站的一些技巧总结:进阶篇 一.gzip/deflate支持现在的网页普遍支持gzip压缩,这往往可以解决大量传输时间,以VeryCD的主页为例,未压缩版本247K,压缩了以后45 ...

  5. Python 安装 第三方库的安装技巧

    Python 安装 第三方库的安装技巧 我的电脑:Windows 10 64位. Python IDE 软件:PyCharm 2016.1.4 Python version : Python 3.5. ...

  6. 转载:用python爬虫抓站的一些技巧总结

    原文链接:http://www.pythonclub.org/python-network-application/observer-spider 原文的名称虽然用了<用python爬虫抓站的一 ...

  7. 【转载】 python sort、sorted高级排序技巧

    这篇文章主要介绍了python sort.sorted高级排序技巧,本文讲解了基础排序.升序和降序.排序的稳定性和复杂排序.cmp函数排序法等内容,需要的朋友可以参考下 Python list内置so ...

  8. 用python爬虫抓站的一些技巧总结 zz

    用python爬虫抓站的一些技巧总结 zz 学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本, ...

  9. 10个jQuery小技巧

    收集的10个 jQuery 小技巧/代码片段,可以帮你快速开发. 1.返回顶部按钮 你可以利用 animate 和 scrollTop 来实现返回顶部的动画,而不需要使用其他插件. $('a.top' ...

随机推荐

  1. 数据可视化之powerBI技巧(二十一)简单三个步骤,轻松管理你的Power BI度量值

    最近碰到几个星友的问题,都是问我之前分享的源文件是如何把度量值分门别类放到不同的文件夹中的,就像这样, 其实在之前的文章中也曾提及过做法,这里再详细说一下制作步骤: 01 | 新建一个空表 点击菜单栏 ...

  2. 前端02 /HTML标签

    前端02 /HTML标签 目录 前端02 /HTML标签 1.特殊字符 2.标签分类 标签嵌套 1.块级标签(行内标签) 1.1div标签(块标签) 1.2p标签(块标签) 2.内联标签 2.1 sp ...

  3. 对掌机游戏Pokemon的一部分系统的拆解流程图

    整体系统拆解 POKEMON系统拆解 属性.技能.进化形态 属性提升系统 种族值说明: 所有Pokemon都拥有自己的种族的种族值,且固定(例如:小火龙:309, 皮卡丘: 320) 种族值是各项属性 ...

  4. 基于animate.css动画库的全屏滚动小插件,适用于vue.js(移动端、pc)项目

    功能简介 基于animate.css动画库的全屏滚动,适用于vue.js(移动端.pc)项目. 安装 npm install vue-animate-fullpage --save 使用 main.j ...

  5. 渐进式Web应用(PWA)

    什么是渐进式Web应用? 渐进式Web应用是一种全新的Web技术,让Web应用和原生APP的体验相近或一致. 渐进式Web应用它可以横跨Web技术及Native APP开发的解决方案,对于开发者的优势 ...

  6. 没错,用三方 Github 做授权登录就是这么简单!(OAuth2.0实战)

    本文收录在个人博客:www.chengxy-nds.top,技术资源共享. 上一篇<OAuth2.0 的四种授权方式>文末说过,后续要来一波OAuth2.0实战,耽误了几天今儿终于补上了. ...

  7. python利用difflib判断两个字符串的相似度

    我们再工作中可能会遇到需要判断两个字符串有多少相似度的情况(比如抓取页面内容存入数据库,如果相似度大于70%则判定为同一片文章,则不录入数据库) 那这个时候,我们应该怎么判断呢? 不要着急,pytho ...

  8. jsp中获取路径信息的方法

    今天在看代码时,发现程序使用了 request.getScheme() .不明白是什么意思,查了一下.结果整理如下: 1.request.getScheme() 返回当前链接使用的协议:一般应用返回h ...

  9. 少儿编程:python趣味编程第二课,如何在pygame中写文字

    python趣味编程第二课:本文仅针对8-16岁的青少年,所以流程是按如何去教好中小学生走的,并不适合成人找工作学习,因为进度也是按照青少年走的 大家好,我是C大叔,上一篇文章已经跟大家介绍了一款开发 ...

  10. 从安全的角度看待DNS

    以前对DNS(Domain Name System)认识就大概的知道是一个提供域名解析服务,作为互联网的基础设施,任何一个IT人员都会或多或少都接触到DNS,随着我最近的接触不断提高,我发现DNS还是 ...