让你相见恨晚的十个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实现生成简单的Makefile文件代码示例
Mar 10 Python
用Python实现一个简单的能够上传下载的HTTP服务器
May 05 Python
Python的Django框架中的URL配置与松耦合
Jul 15 Python
python迭代器与生成器详解
Mar 10 Python
Python实现的文本编辑器功能示例
Jun 30 Python
Python django实现简单的邮件系统发送邮件功能
Jul 14 Python
python3实现的zip格式压缩文件夹操作示例
Aug 17 Python
python绘制玫瑰的实现代码
Mar 02 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
Mar 27 Python
Django admin管理工具TabularInline类用法详解
May 14 Python
计算Python Numpy向量之间的欧氏距离实例
May 22 Python
Python机器学习应用之基于线性判别模型的分类篇详解
Jan 18 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+DBM的同学录程序(1)
2006/10/09 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
2014/11/17 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
ext监听事件方法[初级篇]
2008/04/27 Javascript
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
jquery解决图片路径不存在执行替换路径
2013/02/06 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
简单谈谈javascript代码复用模式
2015/01/28 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
2016/10/28 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
Element Backtop回到顶部的具体使用
2020/07/27 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
详解使用Python处理文件目录的相关方法
2015/10/16 Python
总结python爬虫抓站的实用技巧
2016/08/09 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
python多线程抽象编程模型详解
2019/03/20 Python
一文详述 Python 中的 property 语法
2020/09/01 Python
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
计算机应用职专应届生求职信
2013/11/12 职场文书
社区交通安全实施方案
2014/03/22 职场文书
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
经理岗位职责
2015/02/02 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫