一篇文章搞懂python混乱的切换操作与优雅的推导式


Posted in Python onAugust 23, 2021

前言

因为工作中不怎么使用python,所以对python的了解不够,只是在使用的时候才去学,在之前的几个例子中几乎没使用什么python的特有语法,本着完成任务优先的原则也没有深入,但是在阅读别人的代码的时候发现有些特有语法不是很熟悉,搞不清代码的真正意思,今天就搞清楚切片和推导式的使用,OK。我们开始吧

一篇文章搞懂python混乱的切换操作与优雅的推导式

记忆点:正向的时候第一个是0,负向的时候第一个是-1,可以把列表当做一个换,正向的是1 ,负向的 是-1,0 是中间点

1、混乱的切片操作

一个完整的切片表达式包含两个“:”,用于分隔三个参数(start_index、end_index、step),当只有一个“:”时,默认第三个参数step=1。

切片操作基本表达式:object[start_index : end_index : step]

step:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。当step省略时,默认为1,即从左往右以增量1取值。“切取方向非常重要!”“切取方向非常重要!”“切取方向非常重要!”,重要的事情说三遍!

start_index:表示起始索引(包含该索引本身);该参数省略时,表示从对象“端点”开始取值,至于是从“起点”还是从“终点”开始,则由step参数的正负决定,step为正从“起点”开始,为负从“终点”开始。

end_index:表示终止索引(不包含该索引本身);该参数省略时,表示一直取到数据”端点“,至于是到”起点“还是到”终点“,同样由step参数的正负决定,step为正时直到”终点“,为负时直到”起点“。

一句话,最后的step 决定了方向,从startIndex 到end_index 截取。

举个例子:

l = [1,2,3,4,5,6,7,8,9]
# 1、单个索引
print(l[2])
​
# 2、两个索引,正向
l2 = l[1:3]
print(l2)
​
# 3、两个索引,反向
l3 = l[1:3:-1]
print(l3)
​
l4 = l[-1:-3:-1]
print(l4)

2、优雅的推导式

# 列表推导式的语法格式如下:
# [表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]
​
# ==>  for 迭代变量 in 可迭代对象
#          表达式

一句话总结:结果是什么类型是外面的括号表示,后面的for之前的语句在遍历的时候运行

举个例子:

# 计算表达式得到的一系列值组成一个列表。
list = [i for i in range(10) if i > 3]
print(list)
​
dict_b = {key: key * key for key in range(6)}
print(dict_b)
​
set_a = {value for value in '有人云淡风轻,有人负重前行'}
print(set_a)

3、总结

切片和推导式是python中常用的语法,如果能灵活运用可以用来装逼,也可以让代码简洁一些

到此这篇关于python混乱的切换操作与优雅的推导式的文章就介绍到这了,更多相关python切换操作与推导式内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
连接Python程序与MySQL的教程
Apr 29 Python
python实现自动更换ip的方法
May 05 Python
python基于pygame实现响应游戏中事件的方法(附源码)
Nov 11 Python
django模型层(model)进行建表、查询与删除的基础教程
Nov 21 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
Dec 12 Python
python中强大的format函数实例详解
Dec 05 Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 Python
python实现手机销售管理系统
Mar 19 Python
Django如何防止定时任务并发浅析
May 14 Python
wxpython+pymysql实现用户登陆功能
Nov 19 Python
python matplotlib拟合直线的实现
Nov 19 Python
NumPy统计函数的实现方法
Jan 21 Python
Python学习开发之图形用户界面详解
Aug 23 #Python
利用Python读取微信朋友圈的多种方法总结
Aug 23 #Python
教你使用一行Python代码玩遍童年的小游戏
一文搞懂Python Sklearn库使用
python库sklearn常用操作
Aug 23 #Python
Python使用psutil库对系统数据进行采集监控的方法
Aug 23 #Python
Python 中的Sympy详细使用
Aug 07 #Python
You might like
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
php邮箱地址正则表达式验证
2015/11/13 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
php语法检查的方法总结
2019/01/21 PHP
js 数值项目的格式化函数代码
2010/05/14 Javascript
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
AngularJS路由切换实现方法分析
2017/03/17 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
vue.js与element-ui实现菜单树形结构的解决方法
2018/04/21 Javascript
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
vue与django集成打包的实现方法
2019/11/11 Javascript
Vue项目打包部署到apache服务器的方法步骤
2021/02/01 Vue.js
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
跟老齐学Python之画圈还不简单吗?
2014/09/20 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
深入了解python中元类的相关知识
2019/08/29 Python
解决python replace函数替换无效问题
2020/01/18 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
举例讲解Python装饰器
2020/12/24 Python
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
应届医学毕业生求职信分享
2013/12/02 职场文书
cf搞笑广告词
2014/03/14 职场文书
仓库文员岗位职责
2014/04/06 职场文书
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis