list 和 tuple——python基础学习
一、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