Python中的数据类型有数字,字符串,列表,元组,字典5种。其中字符串,列表(一下含有list的变量均为列表)和元组(一下含有tuple的变量均为元组变量)均称为序列。
一.序列的获取
序列的获取方式有两种。第一种叫做索引法。顾名思义,索引法就是通过索引号进行取值,比如,>>>list1=[1,2,3,4,5] >>>lista[0] 输出1 (这里的>>>表示下一行命令或输出),每个序列的索引号均是从0开始,又如,>>>tuple1=('a','b','c') >>>tuple[2] 输出c 。若元组中含有list,则将其看做一个整体输出,如:>>>tuple2=(['a','b'],1,2,3) >>>tuple[0] 输出[a,b]
>>>tuple2[0][0] 输出'a'。第二种获取序列的方式就是切片法。何为切片法,举个例子,>>>list2=[1,2,3,4,5] >>>list2[1:4] 输出[2,3,4],这种方法就叫切片法,基本格式就是var[a:b:c]
其中,var表示变量名,a表示起始索引,b表示终止索引减1(注意,这里是减1!!!)c表示步长,默认为1。 再如,>>>list2=[1,2,3,4,5] >>>list2[:] 输出[1,2,3,4,5] 从头到尾输出,
>>>list2[-3:-1] 输出[3, 4] 出现负数的情况,-1表示最后一个值,然后依次往前-2,-3这样,比如这里的-1就是5,-2就是4,依次类推。。。 这里需要注意,切片获取方式永远是从左往右,否则输出为空,如 >>>list2[0:-3] >>>[1,2] ,但若>>>list2[-3:0] 输出[ ] 输出便为空,因为索引值-3为3,0为1,1在3的左边,无法从右往左输出。除非是下面这种特殊情况,>>>list[-3:0:-1] 输出[3,2] 这里的步长设为-1,从右往左输出。
二.序列的添加,删除与修改
元组不支持一切修改和添加操作,而列表可以。这里有必要先对列表与元组的id问题就行比较,列表相当于一个标号的容器,容易里面的内容可以不断地变换与更新,但容器还是这个容器,而元组可以看做一个与内容唯一对应的“黑箱”,内容变了就变成另外一个黑箱了。
列表 元组
>>> list=[1,2,3,4,5] >>> tuple3=('a',2,2,3)
>>> list.append(6) #添加一个元素 >>> id(tuple3)
>>> list 47649720L #元组1的id
[1, 2, 3, 4, 5, 6] >>> tuple3=('a',1,2,3)
>>> id(list) >>> id(tuple3)
47199496L #获取list的id 47580488L # 元组的id发生变化
>>> list.remove(6) #删除一个元素 >>>tuple3=('a',3,2,3)
>>> list >>>id(tuple3)
[1, 2, 3, 4, 5] 45691272L #元组的id再次发生变化
>>> id(list)
47199496L #id不变
>>> list[0]=4 #修改一个元素
>>> list
[4, 2, 3, 4, 5]
>>> id(list)
47199496L #id仍然不变
由于元组不支持一切添加,修改操作,这里只能对元组进行整体修改,由于元组的id是与内容唯一对应的,这就相当于三个不同的"黑箱"。所以会出现三个不同的id。
下面就是序列的一系列操作方法了。
(1)序列的添加append()函数,默认添加到尾部
>>>list3=[1,2,3,4] >>>list.append(5) >>>list 输出[1,2,3,4,5]
(2)序列的删除del()或remove()函数
>>>list3=[1,2,3,4] >>>del(list[0]) >>>list 输出[2,3,4,]
>>>list3=[1,2,3,4] >>>list.remove(1) >>>list 输出[2,3,4]
(3)序列的修改
>>>list3=[1,2,3,4] >>>list[0]=2 >>>list 输出[2,2,3,4]
(4)序列的插值insert()函数
>>>list3=[1,2,3,4] >>>list.insert(2,5) >>>list 输出[1,2,5,3,4] #在索引值为2的地方插入5
(5)序列值的弹出pop()函数
>>>list3=[1,2,3,4] >>>list.pop(2) 输出3 >>>list3 输出[1,2,4] #弹出序列中索引为2的值