一篇文章搞懂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 相关文章推荐
Django中的“惰性翻译”方法的相关使用
Jul 27 Python
python cx_Oracle模块的安装和使用详细介绍
Feb 13 Python
Python 专题一 函数的基础知识
Mar 16 Python
使用python为mysql实现restful接口
Jan 05 Python
神经网络相关之基础概念的讲解
Dec 29 Python
Django使用中间键实现csrf认证详解
Jul 22 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
Aug 12 Python
详解python列表(list)的使用技巧及高级操作
Aug 15 Python
python turtle 绘制太极图的实例
Dec 18 Python
如何更改 pandas dataframe 中两列的位置
Dec 27 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
Jan 04 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
Jun 02 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
第十四节--命名空间
2006/11/16 PHP
php array_pop()数组函数将数组最后一个单元弹出(出栈)
2011/07/12 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
php截取字符串函数分享
2015/02/02 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
2016/06/13 PHP
jquery 学习之二 属性相关
2010/11/23 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
2015/06/10 Javascript
javaScript中Math()函数注意事项
2015/06/18 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
Js apply方法详解
2017/02/16 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
使用socket.io实现简单聊天室案例
2018/01/02 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
vue中进行微博分享的实例讲解
2019/10/14 Javascript
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
python实现复制整个目录的方法
2015/05/12 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
python爬虫租房信息在地图上显示的方法
2019/05/13 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
2019/09/16 Python
python next()和iter()函数原理解析
2020/02/07 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
SCHIESSER荷兰官方网站:德国内衣专家
2020/10/09 全球购物
建筑设计学生的自我评价
2014/01/16 职场文书
早读迟到检讨书
2014/01/24 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书