让你相见恨晚的十个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中异常报错处理方法汇总
Nov 20 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
详解Python 正则表达式模块
Nov 05 Python
Python 一句话生成字母表的方法
Jan 02 Python
Python----数据预处理代码实例
Mar 20 Python
django做form表单的数据验证过程详解
Jul 26 Python
python对验证码降噪的实现示例代码
Nov 12 Python
python中设置超时跳过,超时退出的方式
Dec 13 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
Feb 10 Python
python实现打砖块游戏
Feb 25 Python
Python远程linux执行命令实现
Nov 11 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
May 25 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作的文本留言本的例子(四)
2006/10/09 PHP
php中的MVC模式运用技巧
2007/05/03 PHP
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
php批量删除cookie的简单实现方法
2015/01/26 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
基于PHP实现的多元线性回归模拟曲线算法
2018/01/30 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
JavaScript Event学习第七章 事件属性
2010/02/07 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
2016/09/26 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
理解 JavaScript EventEmitter
2018/03/29 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
Python高效编程技巧
2013/01/07 Python
python中文乱码的解决方法
2013/11/04 Python
利用Python中的输入和输出功能进行读取和写入的教程
2015/04/14 Python
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
python 中字典嵌套列表的方法
2018/07/03 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
盖尔斯工厂店:GUESS Factory
2020/01/21 全球购物
一些关于MySql加速和优化的面试题
2014/01/30 面试题
巧克力蛋糕店创业计划书
2014/01/14 职场文书
初中学生评语大全
2014/04/24 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
工作自我推荐信范文
2015/03/25 职场文书
详解Python为什么不用设计模式
2021/06/24 Python