一篇文章搞懂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的常见命令注入威胁
Feb 18 Python
python中print的不换行即时输出的快速解决方法
Jul 20 Python
Python实现在某个数组中查找一个值的算法示例
Jun 27 Python
使用python实现抓取腾讯视频所有电影的爬虫
Apr 15 Python
使用python对多个txt文件中的数据进行筛选的方法
Jul 10 Python
pycharm设置鼠标悬停查看方法设置
Jul 29 Python
python 如何去除字符串头尾的多余符号
Nov 19 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
Jan 06 Python
python读取与处理netcdf数据方式
Feb 14 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
Python实现简单的猜单词小游戏
Oct 28 Python
Python借助with语句实现代码段只执行有限次
Mar 23 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
Laravel框架路由配置总结、设置技巧大全
2014/09/03 PHP
php include类文件超时问题处理
2015/02/06 PHP
给大家分享几个常用的PHP函数
2017/01/15 PHP
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
使用js检测浏览器的实现代码
2013/05/14 Javascript
jsPDF生成pdf后在网页展示实例
2014/01/16 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
node.js中module.exports与exports用法上的区别
2016/09/02 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
vue-router路由简单案例介绍
2017/02/21 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
vue使用axios上传文件(FormData)的方法
2019/04/14 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
python基于socket实现网络广播的方法
2015/04/29 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
使用python 3实现发送邮件功能
2018/06/15 Python
python3调用windows dos命令的例子
2019/08/14 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
草莓网英国官网:Strawberrynet UK
2017/02/12 全球购物
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
新年爱情寄语
2014/04/08 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
银行员工考核评语
2014/12/31 职场文书
高中教师个人总结
2015/02/10 职场文书
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
2021/04/14 Python
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS