让你相见恨晚的十个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 相关文章推荐
在RedHat系Linux上部署Python的Celery框架的教程
Apr 07 Python
python执行等待程序直到第二天零点的方法
Apr 23 Python
Python 爬虫的工具列表大全
Jan 31 Python
Python字符编码与函数的基本使用方法
Sep 30 Python
Python爬虫获取图片并下载保存至本地的实例
Jun 01 Python
Python用csv写入文件_消除空余行的方法
Jul 06 Python
Python操作SQLite数据库过程解析
Sep 02 Python
深入浅析Python 中的sklearn模型选择
Oct 12 Python
Xadmin+rules实现多选行权限方式(级联效果)
Apr 07 Python
Python如何绘制日历图和热力图
Aug 07 Python
Django drf请求模块源码解析
Jun 08 Python
用Python爬取某乎手机APP数据
Jun 15 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
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
PHP的FTP学习(一)[转自奥索]
2006/10/09 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
Vue + Elementui实现多标签页共存的方法
2019/06/12 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
netbeans7安装python插件的方法图解
2013/12/24 Python
python对数组进行反转的方法
2015/05/20 Python
在Python的Django框架中为代码添加注释的方法
2015/07/16 Python
python 数据的清理行为实例详解
2017/07/12 Python
Tensorflow之Saver的用法详解
2018/04/23 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
Python Matplotlib绘图基础知识代码解析
2020/08/31 Python
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
shell的种类有哪些
2015/04/15 面试题
销售人员自我评价怎么写
2013/09/19 职场文书
教师四风问题整改措施
2014/09/25 职场文书
数学考试作弊检讨书300字
2015/02/16 职场文书
教导主任个人总结
2015/03/03 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
2019事业单位个人工作总结范文
2019/08/26 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python