Python切片索引用法示例

yipeiwu_com6年前Python基础

本文实例讲述了Python切片索引用法。分享给大家供大家参考,具体如下:

在Python中,可以用用简单的方括号加一个下标的方式访问序列的每一个元素,这种方式称之为切片操作符,切片操作符有三种形式:

[][:][::]

访问某一数据元素的语法如下:

sequence[index]

sequence是序列的名字,index是访问元素的对应的偏移量,为正数,0<=index<=len(sequence)-1;使用负索引的时候,其范围为-len(sequence) <=index <= -1

由于Python是面向对象的,所以也可以通过在序列后直接加上一个索引进行访问,如下所以

print ('a','b','c','d')[2]

对于访问多个元素的情形

sequence[starting_index:ending_index]

下面就访问的几种方式进行举例说明:

sequence="abcdefgh"
print len(sequence)  #显示序列长度
print sequence    #打印完整序列
print sequence[:]
print sequence[2:3]  #切片显示,不指定步长默认为1,指定了步长(这里是setp为2)按照步长进行显示
print sequence[1:6:2]
print sequence[3]   #元素访问
print sequence[0:3]  #从首元素开始访问,访问区间为[0,3),左开you
print sequence[:3]
print sequence[2:8]  #从第二个元素一直访问到最后一个元素
print sequence[2:]
print sequence[::-1] #从最后一个元素开始访问,逆序访问,可以视为“翻转”操作
print max(sequence)
print min(sequence)
print sequence.index('c')

这里要注意的是重复操作符 *

sequence * copies_int

当需要一个序列的多个拷贝时,重复操作符就可以发挥作用了,copies_int 必须为整形

print sequence*3   #使用重复操作符

连接操作符 +

sequence1 + sequence2

允许使用 + 将两个相同类型的序列进行连接

print sequence + sequence

但注意看起来很方便,但是这种操作不是最快或者最有效地,对字符串来说,这个操作不如把所有子字符串放到一个列表中或者可迭代对象中,然后使用join()方法来把所有的内容连接在一起节约内存;而对于列表而言,推荐是哟个列表类型的extend()方法来把两个或者多个列表对象合并

str.join(sequence) #方法用于将序列中的元素以指定的字符连接生成一个新的字符串

str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );

输出为:

a-b-c

list.extend(seq)  #函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

aList = [123, 'xyz', 'zara', 'abc', 123];
bList = [2009, 'manni'];
aList.extend(bList)
print "Extended List : ", aList ;

输出为:

Extended List :  [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']

切片索引的语法要比简单的单一元素索引方法灵活很多,开始和结束索引值可以超过字符串的长度。即起始索引值可以小于0,而结束索引值可以大于序列的长度,如:

print ('Faye','Leanna','Daylen')[-100:100]

输出为:

('Faye', 'Leanna', 'Daylen')

如果有一个字符串,想通过循环按照这样的方式进行显示:每次都把位于最后的那一个字符砍掉,如何实现呢?

sequence = 'abcdef'
i = -1
for i in range(-1,-len(sequence),-1):
  print sequence[:i]

输出为:

abcde
abcd
abc
ab
a

发现没有显示第一个,即是没有显示完整的字符串,除开另外单独定义一个sequence[:0],这里使用None作为索引值

sequence = 'abcdef'
for i in [None] + range(-1,-len(sequence),-1):
  print sequence[:i]

输出为:

abcdef
abcde
abcd
abc
ab
a

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

pycharm修改文件的默认打开方式的步骤

pycharm修改文件的默认打开方式的步骤

有时我们用pycharm打开某个文件的时候,默认的打开方式是不正确的,那么如何设置呢?下面小编给大家分享一下。 首先我们点击File菜单,然后选择Setting,如下图所示 接着找到E...

详解Python做一个名片管理系统

名片管理系统有两个模块组成:cards_main.py 和 cards_tools.py一个是主程序,另一个是封装增删改查函数的被调用程序 代码如下 cards_main.py #!...

Python3实现的简单验证码识别功能示例

本文实例讲述了Python3实现的简单验证码识别功能。分享给大家供大家参考,具体如下: 这次的需求是自动登录某机构网站, 其验证码很具特色, 很适合做验证码识别入门demo, 先贴主要代...

python之Character string(实例讲解)

1、python字符串 字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串,l Python不支持单字符类型,单字符也在Python也是作为一个字符串使用...

Python中装饰器高级用法详解

在Python中,装饰器一般用来修饰函数,实现公共功能,达到代码复用的目的。在函数定义前加上@xxxx,然后函数就注入了某些行为,很神奇!然而,这只是语法糖而已。 场景 假设,有一些工作...