让你相见恨晚的十个Python骚操作


Posted in Python onNovember 18, 2020

前言

众所周知,Python 以语法简洁著称,同样实现一个功能,Java 可能要十来行,Python 一行就可以搞定。

Python 的代码之所以这么优雅,完全归功于其独有的特性,只要你掌握了这些特性,同样可以写出像诗一样的代码。

下面我们就一起看看 Python 中的骚操作。

0x00 Hello World

对于大部分程序员来说,第一个程序应该都是 "Hello World!" 了,Python 直接将该入门程序做成了一个包。

In [1]: import __hello__
Hello world!

0x01 交换变量

一行代码搞定变量交换,无需临时变量,也无需异或操作。

In [1]: x,y = y,x

0x02 变量比较

对于变量的连续比较,Python 是支持的比较好的。

In [24]: x = 10

In [25]: 5 < x < 20
Out[25]: True

In [26]: 11 < x < 20
Out[26]: False

0x03 列表推导式

In [2]: list = list(range(10))
# 取偶数
In [3]: even = [x for x in list if x % 2 == 0]

In [4]: even
Out[4]: [0, 2, 4, 6, 8]

0x04 合并字符串

很多语言合并字符串大都是通过 + 号来实现的,但由于字符串的不可变性,不断合并后的字符串会不断的申请新的内存。

In [5]: x = ['a', 'b', 'c', 'd', 'e', 'f', 'g']

In [6]: ''.join(x)
Out[6]: 'abcdefg'

0x05 列表切片

In [2]: x
Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 取索引为 2 到 8 的值,步长为 2
In [4]: x[2:8:2]
Out[4]: [2, 4, 6]

# 步长为负值,表示从后面取值
In [6]: x[::-2]
Out[6]: [9, 7, 5, 3, 1]

0x06 反转字符串

In [7]: x = 'Hello Python!'

In [8]: x[::-1]
Out[8]: '!nohtyP olleH'

0x07 同时获取下标和值

x = list(range(10))
for index, value in enumerate(x):
 print(index, value)

0x08 zip()函数

In [7]: a = [1,2,3]

In [8]: b = [4,5,6]

In [9]: c = [7,8,9]

In [16]: list(zip(a, b, c))
Out[16]: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

# 逆操作
In [18]: zz = (zip(a, b, c))

In [19]: x, y, z = zip(*zz)

In [20]: x,y,z
Out[20]: ((1, 2, 3), (4, 5, 6), (7, 8, 9))

# 合并列表相邻项
In [22]: a = [1, 2, 3, 4, 5, 6]

In [23]: list(zip(a[::2], a[1::2]))
Out[23]: [(1, 2), (3, 4), (5, 6)]

0x09 闭包

def outer(x):
 def inner(y):
  # 在内函数中 用到了外函数的变量
  nonlocal x
  x += y
  return x + y

 # 外函数的返回值是内函数的引用
 return inner

fun = outer(10)

print(fun(10)) # 30
print(fun(10)) # 40
print(fun(10)) # 50

总结

今天我们学习了一些 Python 的技巧,都是大家平时工作必须掌握的技能。大家学会了么。

到此这篇关于让你相见恨晚的十个Python骚操作的文章就介绍到这了,更多相关十个Python骚操作内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
详解Python中 __get__和__getattr__和__getattribute__的区别
Jun 16 Python
Python绘制3d螺旋曲线图实例代码
Dec 20 Python
详解tensorflow训练自己的数据集实现CNN图像分类
Feb 07 Python
Linux下python与C++使用dlib实现人脸检测
Jun 29 Python
python中的常量和变量代码详解
Jul 25 Python
利用ImageAI库只需几行python代码实现目标检测
Aug 09 Python
Python连接字符串过程详解
Jan 06 Python
详解python环境安装selenium和手动下载安装selenium的方法
Mar 17 Python
查看已安装tensorflow版本的方法示例
Apr 19 Python
学习python需要有编程基础吗
Jun 02 Python
Matlab中plot基本用法的具体使用
Jul 17 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
Dec 31 Python
python搜索算法原理及实例讲解
Nov 18 #Python
python的数学算法函数及公式用法
Nov 18 #Python
python3中TQDM库安装及使用详解
Nov 18 #Python
Python3中FuzzyWuzzy库实例用法
Nov 18 #Python
scrapy redis配置文件setting参数详解
Nov 18 #Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 #Python
详解Scrapy Redis入门实战
Nov 18 #Python
You might like
PHP实现冒泡排序的简单实例
2016/05/26 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
CSS+Jquery实现页面圆角框方法大全
2009/12/24 Javascript
DWZ table的原生分页浅谈
2013/03/01 Javascript
可以用鼠标拖动的DIV实现思路及代码
2013/10/21 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
2015/11/25 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
详解Vue项目部署遇到的问题及解决方案
2019/01/11 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python实现bucket排序算法实例分析
2015/05/04 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
一文总结学习Python的14张思维导图
2017/10/17 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
python定义类的简单用法
2020/07/24 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
优秀团支部事迹材料
2014/02/08 职场文书
农业局学习党的群众路线教育实践活动心得体会
2014/03/07 职场文书
文明演讲稿范文
2014/05/12 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
优秀护士事迹材料
2014/12/25 职场文书
2015年新学期寄语
2015/02/26 职场文书
个人求职自荐信范文
2015/03/06 职场文书
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python
python 判断文件或文件夹是否存在
2022/03/18 Python