Python对切片命名的实现方法

作者:laozhang 时间:2023-09-30 09:43:15 

1、需求

我们的代码已经变得无法阅读,到处都是硬编码的切片索引,我们想优化他们。

2、解决方案

代码中如果有很多硬编码的索引值,将导致可读性和维护性都不佳。

内置的slice()函数会创建一个切片对象,可以用在任何运行进行切片操作的地方。


items=[0,1,2,3,4,5,6]
a=slice(2,4)
print(items[2:4])
print(items[a])

items[a]=[10,11,12,13]
print(items)

del items[a]
print(items[a])
print(items)

运行结果:


[2, 3]
[2, 3]
[0, 1, 10, 11, 12, 13, 4, 5, 6]
[12, 13]
[0, 1, 12, 13, 4, 5, 6]

如果有一个slice对象的实例s。可以分别通过s.start、s.stop以及s.step属性得到关于该对象的信息。例如:


items=[0,1,2,3,4,5,6]
a=slice(2,8,3)
print(items[a])
print(a.start)
print(a.stop)
print(a.step)

结果:


[2, 5]
2
8
3

此外,可以通过使用indices(size)方法将切片映射到特定大小的序列上。这会返回一个(start,stop,step)元组,所有的值都已经恰当地限制在边界以内(当做索引操作时可避免出现IndexError异常),例如:


s='HelloWorld'
a=slice(2,5)
print(a.indices(len(s)))
for i in range(*a.indices(len(s))):
 print(str(i)+":"+s[i])

结果:


(2, 5, 1)
2:l
3:l
4:o
标签:Python,切片命名
0
投稿

猜你喜欢

  • Python函数默认参数常见问题及解决方案

    2023-04-03 15:42:42
  • 如何利用pyecharts画好看的饼状图

    2021-04-19 09:07:19
  • python实现随机漫步方法和原理

    2023-06-26 19:32:02
  • 解决Python 使用h5py加载文件,看不到keys()的问题

    2021-10-04 06:19:15
  • CMD命令操作MSSQL2005数据库(命令整理)

    2024-01-21 11:14:49
  • Oracle 插入超4000字节的CLOB字段的处理方法

    2024-01-18 13:08:03
  • Oracle学习笔记(五)

    2024-01-25 04:12:09
  • 基于python的Tkinter编写登陆注册界面

    2022-12-20 09:44:30
  • php输出全部gb2312编码内的汉字方法

    2023-10-04 05:56:31
  • Oracle与SQL Server数据库镜像对比

    2009-03-25 14:27:00
  • PyCharm+Miniconda3安装配置教程详解

    2022-03-26 08:31:16
  • 详解Python中的 type()函数

    2023-12-03 09:13:39
  • 巧用Dreamweaver MX控制页面元素

    2009-09-13 18:38:00
  • asp查询xml的代码实现无刷新 模糊查询

    2008-04-30 15:39:00
  • 解决90%的常见问题的8个python NumPy函数

    2021-12-06 23:33:39
  • Python多版本开发环境管理工具介绍

    2024-01-02 07:13:43
  • tkinter动态显示时间的两种实现方法

    2021-05-24 23:40:35
  • 使用Pandas的Series方法绘制图像教程

    2023-12-12 17:52:25
  • Python中的字符串操作和编码Unicode详解

    2021-02-24 18:37:11
  • python实用代码片段收集贴

    2022-02-16 10:01:40
  • asp之家 网络编程 m.aspxhome.com