让你相见恨晚的十个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编程开发之textwrap文本样式处理技巧
Nov 13 Python
谈谈Python进行验证码识别的一些想法
Jan 25 Python
Python实现字典依据value排序
Feb 24 Python
Python Sql数据库增删改查操作简单封装
Apr 18 Python
PyTorch快速搭建神经网络及其保存提取方法详解
Apr 28 Python
python切片及sys.argv[]用法详解
May 25 Python
python递归实现快速排序
Aug 18 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
Apr 01 Python
python新式类和经典类的区别实例分析
Mar 23 Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 Python
解决pycharm 格式报错tabs和space不一致问题
Feb 26 Python
通过Python把学姐照片做成拼图游戏
Feb 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
Smarty Foreach 使用说明
2010/03/23 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
js子页面获取父页面数据示例
2014/05/15 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
一文搞懂ES6中的Map和Set
2019/05/20 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
用Python写一个无界面的2048小游戏
2016/05/24 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
详解Python3中ceil()函数用法
2019/02/19 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
Python学习笔记之lambda表达式用法详解
2019/08/08 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
Python 如何测试文件是否存在
2020/07/31 Python
Python用Jira库来操作Jira
2020/12/28 Python
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
2018/02/07 HTML / CSS
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
日语专业个人的求职信
2013/12/03 职场文书
大学学习生活感言
2014/01/18 职场文书
班组长岗位职责
2014/03/03 职场文书
药品营销策划方案
2014/06/15 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
2015中学教学工作总结
2015/07/22 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
go web 预防跨站脚本的实现方式
2021/06/11 Golang
python中的getter与setter你了解吗
2022/03/24 Python