一、list
1. 列表list是一种有序的集合,可以随时添加和删除元素,用 [ ] 将其中的元素括起来,如一个班级的姓名 name['小明','小红','小亮']是一个list
2. list的索引是从0开始的,还可以用-1做索引直接获取最后一个元素
3. 当索引超出了范围时,Python会报一个IndexError
错误,所以,要确保索引不要越界,记得最后一个元素的索引是len()-1
1 >>> name=['小红','小明','小亮'] 2 >>> name[0] 3 '小红' 4 >>> name[1] 5 '小明' 6 >>> name[2] 7 '小亮' 8 >>> name[-1] 9 '小亮' 10 >>> name[-2] 11 '小明' 12 >>> name[-3] 13 '小红' 14 >>> name[-4] 15 Traceback (most recent call last): 16 File "<stdin>", line 1, in <module> 17 IndexError: list index out of range 18 >>>
3. 可以用len()函数获取list当中元素的个数,若list中没有元素,len的值为0
1 >>> len(name) 2 3
4. list是一个可变的有序表,可以通过append()方法向list的末尾添加元素
1 >>> name.append('小强') 2 >>> name 3 ['小红', '小明', '小亮', '小强']
5. 用insert()方法将指定元素插入到指定位置
1 >>> name.insert(1,'小张') 2 >>> name 3 ['小红', '小张', '小明', '小亮', '小强']
6. 用pop(i)方法删除者指定位置的元素或者用pop()方法删除list末尾的元素
1 #删除位置为1的元素 2 >>> name.pop(1) 3 '小张' 4 >>> name 5 ['小红', '小明', '小亮', '小强'] 6 #删除末尾的元素 7 >>> name.pop() 8 '小强' 9 >>> name 10 ['小红', '小明', '小亮']
7. 要把某个位置的元素换成别的值,可用直接赋值法
1 >>> name[0]='小白' 2 >>> name 3 ['小白', '小明', '小亮']
8. list中的某个元素也可以是一个list,可以用这种方法看成二维数组
1 >>> x=[1,2,3,[4,5,6],7,8] 2 >>> len(x) 3 6 4 >>> y=[4,5,6] 5 >>> x=[1,2,3,y,7,8] 6 >>> x[3][0] 7 4
二、tuple
1. tuple也是一种有序列表,它称为元组,用()将其中的元素括起来。
2. tuple与list很相似,不同的是,tuple一旦初始化,就不能修改
3. 因为tuple不可变,所以没有append(),pop(),insert()方法,其他获取元素的方法与list是一样的
1 >>> num=(1,2,3) 2 >>> num[0] 3 1 4 >>> num[1] 5 2 6 >>> num[2] 7 3 8 >>> num[-1] 9 3 10 >>> num[-2] 11 2 12 >>> num[-3] 13 1
4. 当定义一个元组时,元组里的元素就得确定下来
1 >>> num=(1,2,3) 2 >>> num 3 (1, 2, 3)
5. 定义一个空的元组
1 >>> num=() 2 >>> num 3 ()
6. 若定义一个只有1个元素的元组,必须得加一个逗号,避免歧义
1 >>> n=(1) 2 >>> n 3 1 4 #这里定义的不是tuple,是1这个数。这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1 5 >>> n=(1,) 6 >>> n 7 (1,) 8 #所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义
7. tuple里边的元素可以是一个list,这样不可变的tuple就可以变成可变的了,因为list是可变的
1 >>> n=(1,2,3,[4,5,6],7,8) 2 >>> n[3][0] 3 4 4 >>> len(n) 5 6