让你相见恨晚的十个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和perl实现批量对目录下电子书文件重命名的代码分享
Nov 21 Python
利用Python开发微信支付的注意事项
Aug 19 Python
详解Python 数据库的Connection、Cursor两大对象
Jun 25 Python
python 实现对数据集的归一化的方法(0-1之间)
Jul 17 Python
python 去除二维数组/二维列表中的重复行方法
Jan 23 Python
python 计算平均平方误差(MSE)的实例
Jun 29 Python
Python-Seaborn热图绘制的实现方法
Jul 15 Python
python3安装crypto出错及解决方法
Jul 30 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
Aug 19 Python
python网络编程 使用UDP、TCP协议收发信息详解
Aug 29 Python
python 公共方法汇总解析
Sep 16 Python
opencv 分类白天与夜景视频的方法
Jun 05 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文件操作相关类实例
2015/06/18 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
Bootstrap插件全集
2016/07/18 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
2016/12/14 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
探索webpack模块及webpack3新特性
2017/09/18 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
解决vue打包报错Unexpected token: punc的问题
2020/10/24 Javascript
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
简单谈谈Python中的闭包
2016/11/30 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
python放大图片和画方格实现算法
2018/03/30 Python
Win10环境python3.7安装dlib模块趟过的坑
2019/08/01 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
你的自行车健身专家:FaFit24
2016/11/16 全球购物
公司门卫的岗位职责
2014/02/19 职场文书
人资专员岗位职责
2014/04/04 职场文书
婚假请假条格式及范文
2014/04/10 职场文书
简单通用的简历自我评价
2014/09/21 职场文书
校运会加油稿大全
2015/07/22 职场文书
清明节随笔
2015/08/15 职场文书
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技