让你相见恨晚的十个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 相关文章推荐
Python3通过Luhn算法快速验证信用卡卡号的方法
May 14 Python
Python编程修改MP3文件名称的方法
Apr 19 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
Apr 27 Python
从请求到响应过程中django都做了哪些处理
Aug 01 Python
Python第三方Window模块文件的几种安装方法
Nov 22 Python
python的移位操作实现详解
Aug 21 Python
Django异步任务线程池实现原理
Dec 17 Python
解决ROC曲线画出来只有一个点的问题
Feb 28 Python
Python实现鼠标自动在屏幕上随机移动功能
Mar 14 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
详解Django配置JWT认证方式
May 09 Python
PyQt5通过信号实现MVC的示例
Feb 06 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/02/14 PHP
从php核心代码分析require和include的区别
2011/01/02 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
PHP截取发动短信内容的方法
2017/07/04 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
js获取浏览器基本信息大全
2014/11/27 Javascript
jQuery使用post方法提交数据实例
2015/03/25 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
2015/09/16 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
jQuery操作cookie
2016/08/08 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
nodejs读写json文件的简单方法(必看)
2017/03/09 NodeJs
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
2018/01/22 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
[02:19]2018年度DOTA2最佳核心位选手-完美盛典
2018/12/17 DOTA
python从入门到精通(DAY 1)
2015/12/20 Python
便捷提取python导入包的属性方法
2018/10/15 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
市场调研项目授权委托书范本
2014/10/04 职场文书
2014年党员自我剖析材料
2014/10/07 职场文书
劳动仲裁撤诉申请书
2015/05/18 职场文书
百万英镑观后感
2015/06/09 职场文书
mysql主从复制的实现步骤
2021/10/24 MySQL