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

作者:香菜聊游戏 时间:2023-09-15 00:25:10 

前言

因为工作中不怎么使用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中常用的语法,如果能灵活运用可以用来装逼,也可以让代码简洁一些

来源:https://blog.csdn.net/perfect2011/article/details/119825484

标签:python,切片,推导式
0
投稿

猜你喜欢

  • 代码解析python标准库logging模块

    2023-09-21 16:31:32
  • 深入理解Tensorflow中的masking和padding

    2022-01-26 02:21:44
  • asp解决防止表单重复提交的方法

    2007-10-19 18:40:00
  • 详解PyTorch中Tensor的高阶操作

    2021-11-24 12:08:00
  • JavaScript 创建随机数和随机图片

    2024-05-02 16:16:02
  • Python对列表的操作知识点详解

    2022-05-08 09:06:39
  • Chrome调试折腾记之JS断点调试技巧

    2023-07-07 16:35:08
  • 详解python多线程、锁、event事件机制的简单使用

    2022-03-16 19:48:25
  • Python变量基础知识

    2021-10-11 02:13:12
  • python读写ini文件示例(python读写文件)

    2023-06-21 03:10:14
  • MySQL百万级高并发网站实战攻略

    2009-03-25 15:49:00
  • Pycharm中安装pywin32报错问题及解决

    2022-09-29 19:58:14
  • tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法

    2021-08-11 11:43:55
  • go如何删除字符串中的部分字符

    2024-05-22 10:15:54
  • Python中操作各种多媒体,视频、音频到图片的代码详解

    2021-09-25 21:47:49
  • Python程序设计入门(3)数组的使用

    2023-07-20 07:11:15
  • Python爬取股票交易数据并可视化展示

    2022-02-06 13:13:22
  • Python实现位图分割的效果

    2021-09-05 11:13:15
  • Python Pandas创建Dataframe数据框的六种方法汇总

    2023-08-25 07:39:16
  • 详解Python如何查看一个函数的参数

    2023-05-13 19:24:19
  • asp之家 网络编程 m.aspxhome.com