6/20python列表之索引和切片

2019-03-04  本文已影响16人  王悟冥

在python中的列表类型可以往里面加入各种对象的元素。

列表类型中索引和切片

在【list】也可以进行索引和切片,不过是以元素为单位的,而不是以字符为单位。
在切片中,索引序号也是从0开始的
 >>>a =  ['2',3,'make']
 >>>a
 ['2',3,'make']
 a[0]  #索引序号从0开始
 '2'
 >>>a[2]
 'make'
 >>>a[:2]  #跟Str中的类似,切片的范围是:包含开始位置,到结束位置之前。
 [2,3]  #不包含结束位置
 a[1:]  #从开始位到最后一位
 [3,'make']
 >>>a[2][1:3]  #可以对列表中的元素做2次切片
 'ak'  #2次切片,a中的序号2位元素中的序号1到序号2位字符。
list和str两种类型的数据,有共同的地方,它们都属于序列(都是一些对象按照某个次序排列起来,着就是序列的最大的特征)

因此,有很多类似的地方。比如,索引和切片。

 >>>lang = "python"
 >>>lang.index("y")  #表示字符"y"在lang中序列号是多少。
 1
 >>>lst = ['python','java','c++']
 >>>lst.index('java')  #表示java这个元素在lst列表中的序列号是多少。
 1

以上做展示的字符串串索引和切片,都是从左边开始的。

反向索引

还有一种编号方式,就是从右边开始,右边第一个编号为-1,然后依次是-2,-3,...,依次类推下来。

这对字符串,列表等各种序列类型都适用。

 >>>lang = "python"
 >>>lang[-1]
 'n'
 >>>lang[-3]
 'h'
 >>>lst = ['python','java','c++']
 lst[-2]
 'java'

从右边开始编号,第-1号是右边第一个。
但是要切片的话,一定要遵循左边数字小于右边的数字。
例如:

 lang = ;python'
 lang[-3:-1]
 'ho'
 lst = ['python','java','c++']
 lst[-3:-1]
 ['python','java']

在反向序列中的切片,同样遵循原则是:到包含开始位置,到结束位置之前。

反转

 >>>ls = [1,2,3,4,5,6]
 ls[::-1]  #反转
 [6,5,4,3,2,1]
 >>>ls
 [1,2,3,4,5,6]  #ls的对象数据没有变化,只是用函数让元素反向排列了。
对字符串同样也可以
 >>>lang = 'python'
 lang[::-1]
 'nohtyp'
 >>>lang
 'python'

上面的反转,不管是int类型还是lst类型反转之后,原来的值都没有改变。

在python中用函数将序列类型反转。
 >>> ls = [1,2,3,4,5,6,7,8]
 >>> ls
 [1, 2, 3, 4, 5, 6, 7, 8]
 >>> list(reversed(ls))
 [8, 7, 6, 5, 4, 3, 2, 1]
用【list(reversed(object))】函数可以返回反转的序列.
它返回的对象也是可以迭代的,不过是已经将原来的序列对象反转了。

如下:

 >>>list(reversed('abcd'))
 ['d','c','b','a']
关于列表的操作就暂时就这么多了。
上一篇下一篇

猜你喜欢

热点阅读