列表、元组和字符串都是序列,但是序列是什么,它们为什么如此特别呢?序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。
shoplist = ['apple','mango','carrot','banana'] print 'item 0 is ', shoplist [0] print 'item 1 is ',shoplist [1] print 'item 2 is ',shoplist [2] print 'item 3 is ', shoplist [3] print 'item -1 is ', shoplist [-1] print 'item -2 is ' ,shoplist [-2] print 'item 1 to 3 is ', shoplist [1:3] print 'item 2 to end is',shoplist[2:] print 'item 1 to -1 is ',shoplist[1:-1] print 'item start to end is' ,shoplist[:] name = 'swaroop ' print 'characters 1 to 3 is ',name [1:3] print 'characters 2 to end is',name [2:] print 'characters 1 to -1 is ',name [1:-1] print 'characters start to end is' ,name[:]
通过索引来获取序列中的单个项目。也被称作为下标操作。每当你用方括号的一个数来指定一个序列时,Python会为你抓取对应位置的的项目。Python从0开始计数的。shoplist [0],就是第一个数。
索引同样可以是负数,在那样的情况下,位置是从序列尾开始计算的。因此,shoplist[-1]
表示序列的最后一个元素而shoplist[-2]
抓取序列的倒数第二个项目。
切片操作符是序列名后面跟一个方括号,方括号有一对可选的数字,用冒号分割 :,数是可选的,冒号:是必须的。
没有指定数,就默认从第一开始,最后一个结束。开始位置是被包含在序列切片中的,结束位置被排斥在切片外。
shoplist[1:3]
返回从位置1开始,包括位置2,但是停止在位置3的一个序列切片,因此返回一个含有两个项目的切片。类似地,shoplist[:]
返回整个序列的拷贝
可以用负数做切片,shoplist[:-1]
会返回除了最后一个项目外包含所有项目的序列切片。
序列的神奇之处在于你可以用相同的方法访问元组、列表和字符串