前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python序列操作—索引详解

python序列操作—索引详解

作者头像
dogfei
发布2020-07-31 11:40:18
6140
发布2020-07-31 11:40:18
举报
文章被收录于专栏:devops探索devops探索

索引

序列中的所有元素都有编号,从零开始依次递增,例如:

1 2 3 4 5 6 7 8 9

>>> said = "hello world" >>> said[0] 'h' >>> said[1] 'e' >>> said[-1] 'd' >>> said[-2] 'l'

索引0指向的是第一个元素,-1指向的最后一个元素,我们可以使用索引来获取元素,上面的例子中我们也可以直接索引,不用赋值给一个变量,例如:

1 2 3 4 5 6

>>> 'hello world'[0] 'h' >>> 'hello world'[1] 'e' >>> 'hello world'[-1] 'd'

如果函数调用返回一个序列,可以直接对其进行索引操作,例如,结合input()函数来使用:

1 2 3

>>> print(input("Age: ")[-1]) Age: 25 5

下面结合一个示例来进行学习:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

#生成一个列表,用来保存所有月份 months = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ] #生成一个字符串,用来表示一个月中从第一天到最后一天的英文后缀 #例如: first,second,third,fourth,fifth,sixth...... endings = ['st','nd','rd'] + 17 * ['th'] + ['st','nd','rd'] + 7 * ['th'] + ['st'] year = input('Year: ') month = input('Month (1-12): ') day = input('Day (1-31): ') #上面输入的year,month,day等都是str型,所以需要转换成int型 month_number = int(month) day_number = int(day) #这里就是运用了索引进行将列表中的元素给列出来,注:索引是从0开始的,所以我们需要在输入的数字基础上再减去1 month_name = months[month_number - 1] ordinal = day + endings[day_number - 1] print(month_name + ' ' + ordinal + ', ' + year)

上面有几点需要注意:

1、序列之间是可以相加的

1 2 3 4

>>> 'hello ' + 'world' 'hello world' >>> [1,2,3] + [4,5,6] [1, 2, 3, 4, 5, 6]

2、序列可以与数相乘

1 2 3 4 5 6

>>> 5 * 'python' 'pythonpythonpythonpythonpython' >>> 3 * [1,2,3] [1, 2, 3, 1, 2, 3, 1, 2, 3] >>> 3 * ['th'] ['th', 'th', 'th']

索引——切片处理

切片是索引的灵活使用,我们可以通过切片来访问特定范围内的元素,而特定的范围又如何来表示呢?这个时候我们就可以使用多个索引了,例如:

1 2 3 4 5 6 7 8 9 10 11

>>> net = '<a href="https://www.devilf.cc">Devilf site</a>' >>> net[9:30] 'https://www.devilf.cc' >>> net[32:-4] 'Devilf site' >>> net[32:] 'Devilf site</a>' >>> net[:-1] '<a href="https://www.devilf.cc">Devilf site</a' >>> net[:] '<a href="https://www.devilf.cc">Devilf site</a>

切片还涉及到步长的问题,如果我们不指定,默认便是1

1 2 3 4 5 6 7 8 9 10 11 12

>>> num = [1,2,3,4,5,6,7,8,9] >>> num[0:10:1] [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> num[0:10:2] [1, 3, 5, 7, 9] 上面是步长大于0的情况,当步长为负数时,如何切片呢? >>> num[10:0:-1] [9, 8, 7, 6, 5, 4, 3, 2] >>> num[10::-1] [9, 8, 7, 6, 5, 4, 3, 2, 1] >>> num[10:1:-2] [9, 7, 5, 3]

需要注意的是:步长不能为0,步长大于0的时候,意思是从左向右移动元素,步长小于0的时候,即为从右向左移动元素。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 索引
  • 索引——切片处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档