列表用来存储、表示数据,是可变的
1.创建列表
# 1.利用空的列表
a = []
print(type(a))
# 2.利用list()
b = list()
print(type(b))
# 3.创建并初始化
c = [1,2,3,4]
print(c)
# 4.在同一个列表里放不同类型的变量
d = [1,'hello',True,[1,2,3]]
print(d)
2.访问下标
- 用到下标访问运算符[ ],下标从0开始
a = [1,2,3,4]
print(a[2]) # 3
- 使用下标修改列表元素
a = [1,2,3,4]
a[2] = 100
print(a) # [1,2,100,4]
3.获取列表长度
len():可以是列表、字符串、元组、字典、自定义的类
a = [1,2,3,4]
print(len(a))
# 下面两条语句等价,-1代表最后一个元素,-2表示倒数第二个元素……
print(a[len(a)-1]) # 4
print(a[-1]) # 4
4.列表的切片操作
- 相当于得到子集,切片操作中,[ ]里面有两个数字,表示一段区间
a = [1,2,3,4]
print(a[1:3]) # 1表示开始区间的下标,3表示结束区间的坐标 [1,3)
# 省略边界
b = [1,2,3,4,5]
# 省略后边界,即从开始下标≥1一直到结束
print(b[1:]) # [2,3,4,5]
# 省略前边界,从开始到下标<2
c = [1,2,3,4]
print(c[:2]) # [1,2]
# 利用负数
d = [1,2,3,4]
print(d[:-1]) # [1,2,3]
# 前后边界都省略,即为列表
e = [1,2,3,4]
print(e[:]) # [1,2,3,4]
注意:切片操作是一个比较高效的操纵,取出列表中的一部分,不涉及”数据的拷贝“
- 切片操作取定步长
a = [1,2,3,4,5,6,7,8,9,0]
print(a[::1]) # 1即为步长
print(a[::2]) # [1,3,5,7,9]
print(a[1:-1:2]) # [2,4,6,8] 到0结束,0为开区间范围
# 步长为负数,从后往前取
b = [1,2,3,4,5,6,7,8,9,0]
print(b[::-2]) # [0,8,6,4,2]
注意:切片中的范围超出下标之后,不会出现异常,只会尽可能在范围内取到
5.列表的遍历
- 使用for循环遍历
a = [1,2,3,4]
for elem in a: # elem代表列表里的每一个元素
print(elem)
- 使用for循环,下标方式遍历
a = [1,2,3,4]
for i in range(0,len(a)):
print(a[i])
- while遍历
a = [1,2,3,4,5]
i = 0
while i < len(1):
print(a[i])
i += 1
6.列表的插入
- append往列表末尾新增元素
a = [1,2,3,4]
a.append(5)
a.append('hello')
print(a) # [1,2,3,4,5,'hello']
注意:要搭配对象(即变量)来使用的函数,也叫做“方法”
- insert在任意位置插入
a = [1,2,3,4]
a.insert(1,'hello') # 在下标为1的地方插入hello
print(a) # [1,'hello',2,3,4]
a.insert(100,'world') # 下标超过列表长度,直接在末尾插入
print(a) # [1,'hello',2,3,4,'world']
7.列表的查询
- in:判定元素是否在列表中存在
a = [1,2,3,4]
print(1 in a) #True
print(10 in a) # False
print(2 not in a) # False
- 使用index来判定当前元素在列表中的位置,得到一个下标
a = [1,2,3,4]
print(a.index(2)) # 输出1:表示2存在且下标为1
print(a.index(10)) # 出现抛异常
8.列表的元素删除
- pop删除列表最末尾元素
a = [1,2,3,4]
a.pop()
print(a) # [1,2,3]
- pop删除任意位置元素
a = [1,2,3,4]
a.pop(2) # 删除下标为2的元素
print(a) # [1,2,4]
- remove按照值删除元素
a = [1,2,3,4,'aa','bb']
a.remove('aa')
print(a) # [1,2,3,4,'bb']
9.列表的拼接
- 使用+对两个列表进行拼接
a = [1,2]
b = [3,4]
c = a + b
print(c)
- 使用extend来进行拼接:后一个列表的内容拼接到前一个列表
a = [1,2]
b = [3,4]
a.extend(b) # extend没有返回值
print(a) # [1,2,3,4]
- 使用+=来进行拼接
a = [1,2]
b = [3,4]
a += b # 等价于a = a + b :创建更大的列表存a + b,释放原有的a,a+b再赋值给a
print(a)
10.列表的删除
a = [1,2,3,4]
del a[1] # 删除下标为1 的元素
print(a) # [1,3,4]
del a # 删除整个列表
print(a) # 报not defined异常
11.列表的其他方法
- copy():复制列表
- reverse() :逆转列表
- sort():对列表进行排序
- count():统计个数
l = [1, 2, 3, 2, 4, 2, 1]
print('原列表内容 => ', l)
t = l.copy() # 等价于 t = [:]
print('copy列表内容 => ', t) # [1,2,3,2,4,2,1]
print('统计值为2的元素个数 => ', l.count(2)) # 3
print('查找值为2的最小下标 => ', l.index(2)) # 1
l.reverse()
print('反转列表 => ', l)
l.sort()
print('对列表排序 => ', l)