python编程之slice与indices函数用法

news/2024/7/5 5:05:34
这篇文章主要介绍了详解python编程中slice与indices使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

python编程之slice与indices函数用法python编程之slice与indices函数用法

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

下面是slice的简介:

# slice 两种用法
class slice(stop)
class slice(start, stop[, step])

返回一个表示由 range(start, stop, step) 所指定索引集的 slice 对象。 其中 start 和 step 参数默认为 None。 切片对象具有仅会返回对应参数值(或其默认值)的只读数据属性 start, stop 和 step。 它们没有其他的显式功能;不过它们会被 NumPy 以及其他第三方扩展所使用。

切片对象也会在使用扩展索引语法时被生成。 例如: a[start:stop:step] 或 a[start:stop, i]。

请参阅 itertools.islice() 了解返回迭代器的一种替代版本。

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

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

a = slice(10, 50, 2)
print(a.start)
# 10
print(a.stop)
# 50
print(a.step)
# 2

下面是indices官方解释:

slice.indices(self, length)

此方法接受一个整型参数 length 并计算在切片对象被应用到 length 指定长度的条目序列时切片的相关信息应如何描述。其返回值为三个整型数组成的元组;这些数分别为切片的 start 和 stop 索引号以及 step 步长值。索引号缺失或越界则按照正规连续切片的方式处理。

所有的值都已经恰当的限制在边界以内(当做索引操作时可避免出现IndexError异常)例:

s = 'HelloWorld'
a.indices(len(s))
# (5, 10, 2)
for i in range (*a.indices(len(s))):print(s[i])
# w
# r
# d

以上就是详解python编程slice与indices使用示例的详细内容


http://lihuaxi.xjx100.cn/news/283572.html

相关文章

JavaScript移除绑定在元素上的匿名事件处理函数

前言: 面试的时候有点蒙,结束之后想想自己好像根本就误解了面试官的问题,因为我理解的这个问题本身就没有意义。但是当时已经有一些思路,但是在一个点上被卡住。 结束之后脑子瞬间灵光,想出了当时没有迈出的那一小步。…

jpa删除数据后数据库无修改_java – JPA不删除数据库行

我正面临着JPA的删除问题,这是我的代码:public deleteLine(int idLine) {Line line em.find(Line.class,idLine);Header header line.getHeader();this.deleteLine(header,line);}public boolean deleteLine(Header header, Line line) {try {line.setIdArticle(n…

漫画:什么是LRU算法?

本期封面作者:A17————— 两个月前 —————用户信息当然是存在数据库里。但是由于我们对用户系统的性能要求比较高,显然不能每一次请求都去查询数据库。所以,小灰在内存中创建了一个哈希表作为缓存,每次查找一个用户的时候…

Windows Live Messenger  正式版已经发布

Windows Live Messenger 正式版已经发布!这是新一代的 Messenger。它拥有全新的名字,可以免费下载。并且除了延续使用原 Messenger 的全部功能外,它还提供了几种出色的全新交流方式,实现与朋友的即时共享和交流。转载于:https://www.cnblogs.…

使用 Vagrant 在不同的操作系统上测试你的脚本

Vagrant 可以帮助你在你的电脑上运行其他操作系统,这意味着你可以构建、测试、疯狂折腾而不毁坏你的系统。 我使用 Vagrant 已经很长时间了。我使用几种 DevOps 工具,把它们全安装在一个系统上会搞得很乱。Vagrant 可以让你在不破坏系统的情况下随意折腾…

Contiki 2.7 Makefile 文件(一)

一、主控Makefile 这里以hello-world例子为主线,从其工程Makefile开始,解析整个build过程。 (1)CONTIKI_PROJECT hello-world 定义变量CONTIKI_PROJECT为 hello-world (2)all: $(CONTIKI_PROJECT) all是第一个目标,也就是默认目标&#xf…

mqtt 传文件断开连接的原因_mqtt 发送消息断开链接

出现如下错误o.s.i.mqtt.outbound.MqttPahoMessageHandler|Lost connection; will attempt reconnect on next request我的配置Beanpublic MqttPahoClientFactory mqttClientFactory1() {DefaultMqttPahoClientFactory factory new DefaultMqttPahoClientFactory();MqttConnec…

C++开源跨平台类库集

在如下的库支持下,开发的系统可以很方便移植到当前大部分平台上运行而无需改动,只需在对应的平台下 用你喜欢的编译器 重新编译即可 经典的C库 STLport-------SGI STL库的跨平台可移植版本,在以前有些编译器离符合 标准比较远的情况…