Python对切片命名的实现方法
作者:laozhang 发布时间:2023-09-30 09:43:15
标签:Python,切片命名
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


猜你喜欢
- JavaScript由于同源策略的限制,跨域通信一直是棘手的问题。当然解决方案也有很多: 1.document.domain+iframe的
- 新安装的MySQL5.7,登录时提示密码错误,安装的时候并没有更改密码,后来通过免密码登录的方式更改密码,输入update mysql.us
- 目录创建django项目使用模型的url.py加载静态文件页面跳转创建数据库模型提交表单提交ajax提交创建django项目创建项目的命令行
- 方法不是主流的。有一组数据,大概10万个左右,每一单位的值不会大于30000,要求按照由大到小的顺序不重复输出。参考无忧cosin的方法后(
- 概述从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类
- 我们先思考一下,如果需要达到自动化接口测试的效果,那么我们在基本的模拟请求上还需要做哪些呢?以下我粗略概括为 3 个问题(欢迎更多补充与建
- 前言:在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量
- Vue3 ref获取DOM元素<div ref="divBox">Hello</div>impo
- 开发过程中,我们经常会遇到代码回滚的情况。正常人都知道,git 回滚有两大宝:git revertgit reset当我们在本地开发,还未
- 在数据库表里,我们有时候会保存了很多重复的数据,这些重复的数据浪费资源,我们要将其删除掉,应该怎么处理呢?下面来看一下。先看下我们的表数据,
- 前言忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串。相信不少同学会有同感。在Python中,我们经常会遇到字
- 什么是结构体结构是表示字段集合的用户定义类型。它可以用于将数据分组为单个单元而不是将每个数据作为单独的值的地方。例如,员工有firstNam
- 1. 引言本文重点介绍Python中的三个特殊函数Map,Filter和Reduce,以及如何使用它们进行代码编程。在开始介绍之前,我们先来
- 本文实例讲述了Python学习笔记之列表推导式。分享给大家供大家参考,具体如下:列表推导式列表推导式可以快速简练地创建列表之前的复杂写法:c
- 以下针对Ubuntu系统,Windows系统没有测试过。Ubuntu中默认就安装有Python 2.x和Python 3.x,默认情况下py
- Zeroc Ice简介 Zeroc ICE(Internet Communications Engine ,互联网通信引擎)是目前功能比较
- 百度AI功能还是很强大的,百度AI开放平台真的是测试接口的天堂,免费接口很多,当然有量的限制,但个人使用是完全够用的,什么人脸识别、MQTT
- 熟悉web开发的同学对hook钩子肯定不陌生,通过钩子可以方便的实现一些触发和回调,并且做一些过滤和拦截。django中的中间件(middl
- 简介tuple1.元组是以圆括号“()”包围的数据集合,不同成员以“,”分隔。通过下标进行访问2.不可变序列,可以看做不可变的列表,与列表不
- 最近在做微信支付,调用微信的统一下单支付接口http://mch.weixin.qq.com/wiki/doc/api/jsapi.php?