尽管从表面上看,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])

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有你想的那么神吗_Python的10个神奇的技巧相关推荐

  1. 【Python基础】Pandas笔记---通过比赛整理出的10条Pandas实用技巧

    点击上方"潜心的Python小屋"关注我们,第一时间推送优质文章. 前言 大家好,我是潜心.最近还在参加某比赛,将pandas对数据预处理的方法进行了总结,以下列出的10条是我觉得 ...

  2. Python的10个神奇的技巧

    尽管从表面上看,Python似乎是任何人都可以学习的一种简单语言,但确实如此,许多人可能惊讶地知道一个人可以熟练掌握该语言. Python是其中的一门很容易学习的东西,但可能很难掌握. 在Python ...

  3. python爬虫什么意思-这样学Python爬虫,想爬什么爬什么

    原标题:这样学Python爬虫,想爬什么爬什么 你知道怎么学爬虫吗?正确的入门姿势在这里!只要学好了Python爬虫,真的是可以想爬什么爬什么哟,像什么美女图片啦,美食图片啦,美景图片啦.(小编可不知 ...

  4. Python爬虫 | 利用python爬虫获取想要搜索的数据

    这篇文章主要介绍了利用Python爬虫采集想要搜索的信息(利用某du的接口实现)并且处理掉它的反爬手段,文中示例代码很详细,具有一定的学习价值,感兴趣的小伙伴快来一起学习吧. ☀️新人小白博主

  5. python批量删除文件1001python批量删除文件_Python实现递归遍历文件夹并删除文件...

    思路: 遍历文件夹下面的文件夹 如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除) 删除此文件夹 如果文件夹 ...

  6. python全局变量在程序执行的全过程有效_PYTHON使每个过程都可以访问全局变量

    查看 mmap,这是用于创建可在进程间共享的内存映射文件的Python接口.您可能想要以下内容: import mmap import os import ctypes mm = mmap.mmap( ...

  7. python大神作品_掌握了这24个顶级Python库,你就是大神!

    全文共11815字,预计学习时长24分钟 Python有以下三个特点: · 易用性和灵活性 · 全行业高接受度:Python无疑是业界最流行的数据科学语言 · 用于数据科学的Python库的数量优势 ...

  8. python编写函数求n阶调和数_Python实现调和级数的计算

    最近在复习数学分析的时候,看到调和级数是发散的,想起上学期学过的python,于是想用python来实现调和级数的简单计算. 首先补充一下调和级数的定义吧: Sn=1+1/2+1/3+1/4+...+ ...

  9. python语言的特点有没有面向过程_Python 入门基础之面向对象过程-面向过程概述...

    首先说明一下,python既是面向过程的语言,也是面向对象的语言,所以说python很灵活. 一句话简单说一下什么叫做面向对象编程OOP(object-oriented programing):面向对 ...

最新文章

  1. 你知道为什么Java的main方法必须是public static void?
  2. python numpy中stack(),hstack(),vstack()函数解释
  3. kotlin学习之类(三)
  4. Win7打印时文档被挂起的解决方法
  5. mes二次开发可以用c++吗_可以用水洗单反镜头吗
  6. DBSCAN聚类算法初探(五)
  7. 更新日志_CargoWare系统云平台更新日志2020.11.24
  8. java之Calendar类
  9. Linux之yum安装MySQL
  10. (10.13更新--完结)我不是大神(腾讯+京东+网易+阿里+去哪儿网面筋)
  11. 594万元奖金 | “2020 年全国人工智能大赛”重磅启动
  12. 职工考勤管理信息系统数据库课设_公司员工考勤管理信息系统的设计与实现
  13. 【Pytorch】pack_padded_sequence与pad_packed_sequence实战详解
  14. Ubuntu18.04使用apt update更新报错:W: 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。
  15. 【继上篇】云计算架构概念和技术基础
  16. 基于IDL的高分二号影像批量预处理程序
  17. 看穿 137 亿光年,中国天眼会帮我们找到「三体星」吗?|创新大会 2021
  18. 随机森林模型sklearn_Sklearn_随机森林
  19. Instagram帖子如何隐藏喜欢和查看计数?
  20. 一种面向电信行业基站数据的数据采集系统的设计与实现

热门文章

  1. php运行速度检测软件,PHP执行慢分析工具xdebug + webgrind
  2. Evaluation of Deep Learning Toolkits
  3. Coursera吴恩达《卷积神经网络》课程笔记(4)-- 人脸识别与神经风格迁移
  4. 优麒麟桌面闪烁_UKUI 桌面环境登陆 Arch Linux
  5. xamarin textview 滚动_微软测试 Win10 Chromium/Edge CPU 优化和滚动新效果
  6. QFileDialog::getOpenFileName
  7. 你很烫吗?我很烫——关于栈区和静态存储区的思考
  8. Delphi常见的运行期Access Violation错误分析
  9. 批处理之判断文件是否存在
  10. 函 float *search(float(*pointer)[4],int n)