在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']
网友评论