一、列表list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素,其用法如下:
classmates = ['Michael', 'Bob', 'Tracy']
L = ['Apple', 123, True] #list里面的元素的数据类型也可以不同
s = ['python', 'java', ['asp', 'php'], 'scheme'] #list元素也可以是另一个list
len(s) #s的长度为4
s[2][1] #s[2][1]为php
len(classmates) #获得list元素的个数,空list长度为0
classmates[0] #获得list的第一个元素,记得最后一个元素的索引是len(classmates) - 1
classmates[-1] #直接获取最后一个元素
classmates[-2] #直接获取倒数第二个元素
classmates.append('Adam') #往list中追加元素到末尾
classmates.insert(1, 'Jack')#把元素插入到指定的位置,比如索引号为1的位置(第二位)
classmates.pop() #删除list末尾的元素
classmates.pop(1) #删除指定位置的元素,比如删除索引号为1的位置(第二位)
classmates[1] = 'Sarah' #把某个元素替换成别的元素,可以直接赋值给对应的索引位置
二、tuple
1、另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。其用法如下:
t = (1, 2)
t1 = (1,) #如果只有一个元素,仍需要加“,”,此时输出为(1,),否则输出1
t2= () #输出为(),与之对应的空列表为[]
2、“可变的”tuple
tuple中引用list,可实现“可变的”tuple,如下:
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a'
,就不能改成指向'b'
,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!