Python神奇的10个技巧

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

不幸的是,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 counter_Python神奇的10个技巧相关推荐

  1. python大神-6年Python大神总结10个开发技巧,80%的人都不会

    值得一提的是,这 10 个技巧全部收录在我自己写的 <Python黑魔法指南>里 另外要特别注意:光理论是不够的.这里顺便免费送大家一套2020最新python入门到高级项目实战视频教程, ...

  2. exists的用法 python_5 年 Python ,总结的 10 条 Python 使用技巧

    今天给大家分享 10 个我平时整理非常实用的 Python 开发小技巧,内容目录如下: 值得一提的是,这 10 个技巧全部收录在我自己写的 <Python黑魔法指南>里. 1. 如何在运行 ...

  3. python大神的程序_6年Python大神总结10个开发技巧,80%的人都不会

    值得一提的是,这 10 个技巧全部收录在我自己写的 <Python黑魔法指南>里 另外要特别注意:光理论是不够的.这里顺便免费送大家一套2020最新python入门到高级项目实战视频教程, ...

  4. python对excel某一列去重-「总结篇」Python中所有的Excel操作技巧

    原标题:「总结篇」Python中所有的Excel操作技巧 Python对于Excel的操作是多种多样的,掌握了相关用法就可以随心所欲的操作数据了! 操作xls文件 xlrd(读操作): import ...

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

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

  6. python自动化办公入门书籍-Python如此神奇,让繁琐工作自动化 (文中含Python基础)...

    原标题:Python如此神奇,让繁琐工作自动化 (文中含Python基础) "你在2个小时里完成的事,我们3个人要做两天."21世纪早期,我的大学室友在一个电子产品零售商店工作.商 ...

  7. Python 的神奇方法指南

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

  8. Python八个自动化办公的技巧

    Python八个自动化办公的技巧 大家好 我是毕加锁 (锁!) 这篇文章主要介绍了几个Python自动化办公的技巧,可以大大提高工作效率,例如:Word文档doc转docx.Excel文件批量合并.W ...

  9. python二级证书考试难度_全国计算机等级考试 python二级考试体验及小技巧总结...

    1.考试共一百分,其中单选题40分,操作题60分,一共考120分钟.60分以上及格.70-89是良好,90以上是优秀.这个等级会打印在证书上. 2.单选题里有30分是python相关,有10分是计算机 ...

最新文章

  1. 开发日记-20190814 关键词 日常
  2. Autodesk布道GIS新理念
  3. 单片机中断程序实例_单片机定时器中断实现长时间定时程序
  4. pip 10.0.0 BUG 解决方案Traceback (most recent call last): File /usr/bin/pip3, line 9, in module...
  5. 多php共用一个mysqli连接,在pHP中使用MySQLi连接到多个数据库
  6. Activity切换动画---点击哪里从哪放大
  7. 【11】 Express安装入门与模版引擎ejs
  8. 学习AJAX,解析XMLHttpRequest对象
  9. android 融云sdk集成,使用融云SDK集成
  10. MDI窗体容器和权限设置.avi
  11. idea全局主题_2020年最新-IDEA最详细配置(配图文收藏版配置)
  12. linux数组fortran,[转载]FORTRAN中数组的定义及使用
  13. Java后端技术知识点汇总(思维导图)
  14. xshell修改服务器登录密码
  15. 【解决方案】数字孪生智慧光伏电站三维可视化系统
  16. android设置管理员权限设置,android 获取超级管理员权限,进行锁屏、恢复出厂设置...
  17. 【转】腾讯云PCDN:从P2P到万物互联服务框架
  18. 保险与赌博的差异,航延险是赌博吗?
  19. 高德地图刷新当前位置_定位-服务-教程-地图 JS API | 高德地图API
  20. Android Studio真机测试

热门文章

  1. [恢]hdu 2040
  2. 跨域请求/SpringMVC拦截器
  3. [编织消息框架][优化系统]突破连接上限(上)
  4. 编译Sqoop2错误解决
  5. 一次清空所有数据方法
  6. hdu 1518 dfs+剪枝
  7. 解决IntelliJ IDEA控制台乱码问题[包含程序运行时的log4j日志以及tomcat日志乱码]
  8. explorer.exe中发生未处理的win32异常
  9. C# Winfrom DataGridView DataSource绑定数据源后--解决排序问题
  10. Gradle_04_解决多项目同级依赖时找不到符号的异常