一篇文章搞懂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 初始化多维数组代码
Sep 06 Python
python检测lvs real server状态
Jan 22 Python
详解python的数字类型变量与其方法
Nov 20 Python
python中partial()基础用法说明
Dec 30 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
对python使用telnet实现弱密码登录的方法详解
Jan 26 Python
python利用Opencv实现人脸识别功能
Apr 25 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
10个Python面试常问的问题(小结)
Nov 20 Python
python 实现从高分辨图像上抠取图像块
Jan 02 Python
Python变量格式化输出实现原理解析
Aug 06 Python
python在协程中增加任务实例操作
Feb 28 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中路径问题的解决方案
2006/10/09 PHP
Ajax PHP分页演示
2007/01/02 PHP
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
JQuery 学习笔记 选择器之六
2009/07/23 Javascript
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
2014/01/15 Javascript
使用jquery.validate自定义方法实现"手机号码或者固话至少填写一个"的逻辑验证
2014/09/01 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
2016/06/13 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
node内置调试方法总结
2018/02/22 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
用js编写留言板
2020/03/17 Javascript
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
Python restful框架接口开发实现
2020/04/13 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
Python读写Excel表格的方法
2021/03/02 Python
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
技术合作协议书范本
2014/04/18 职场文书
一年级学生期末评语
2014/04/21 职场文书
雏鹰争章活动总结
2014/05/09 职场文书
党员转正介绍人意见
2015/06/03 职场文书
秋收起义观后感
2015/06/11 职场文书
SpringBoot+VUE实现数据表格的实战
2021/08/02 Java/Android