让你相见恨晚的十个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使用三种方法实现PCA算法
Dec 12 Python
wxPython的安装图文教程(Windows)
Dec 28 Python
Django处理文件上传File Uploads的实例
May 28 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
opencv python 2D直方图的示例代码
Jul 20 Python
使用TensorFlow搭建一个全连接神经网络教程
Feb 06 Python
基于plt.title无法显示中文的快速解决
May 16 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
Oct 21 Python
python使用selenium爬虫知乎的方法示例
Oct 28 Python
python3中布局背景颜色代码分析
Dec 01 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 Python
python工具——Mimesis的简单使用教程
Jan 16 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代码把全角数字转为半角数字
2007/12/10 PHP
Php header()函数语法及使用代码
2013/11/04 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
JavaScript 使用技巧精萃(.net html
2009/04/25 Javascript
基于js disabled=&quot;false&quot;不起作用的解决办法
2013/06/26 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
JS实现简单的天数计算器完整实例
2017/04/28 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
pandas值替换方法
2018/07/10 Python
python将.ppm格式图片转换成.jpg格式文件的方法
2018/10/27 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
JBL加拿大官方商店:扬声器、耳机等
2020/10/23 全球购物
外贸主管求职简历的自我评价
2013/10/23 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
2014年商场工作总结
2014/11/22 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
二手房购房意向书
2015/05/09 职场文书
电视新闻稿
2015/07/17 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
mysql的单列多值存储实例详解
2022/04/05 MySQL
MySql数据库触发器使用教程
2022/06/01 MySQL
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL