列表 list
数组可以管理多个数据 必须相同的类型
python 本质没有数据类型 管理一组数据就得使用列表
. 创建列表
1, 创建一个普通列表
- l=['zhang3','li4','wang5']
- l2=[1,2,3,4,5]
2, 创建混合列表:
l3=[1,2,'hehe',3,'xiaohei']
3, 创建空列表:
l4=[]
查看列表的长度
len(列表)
. 向列表添加元素
append(元素)
属于列表的方法
元素: 列表中每一个数据都称为元素
1, 每次只能添加一个元素
2, 添加在列表的末尾
- list1 = [1,2,3]
- print list1,len(list1)
- list1.append(4)
- print list1,len(list1)
- list1.append(5)
- print list1,len(list1)
- list1=[1,2,3]
- list1.append([4,5,6])
- print list1
- insert(索引, 数据)
索引: index--- 下标
表示在指定位置插入数据
- list1=[1,2,3]
- list1.insert(1,5)
- print list1
- list1.insert(0,1)
- print list1
. 从列表中获取元素
通过列表下标获取元素, 如果超出列表下标范围, 会报错, out of range
- list1=[1,2,3]
- pirnt list[0]
获得列表中的所有元素, 不重复, 不遗漏
一个个拿
for 循环
- list1=[1,2,3]
- for i in list1:
- print i
换位置
- list1=[1,2,3]
- temp=list[0]
- list[0]=list[1]
- list[1]=temp
- print list1
- .remove(元素)
- list1=[1,2,3]
- list1.remove(2)
- print list1
如果删除的元素不在列表中, 会报错
del 列表的元素, 变量 -----(不是方法, 是语句)
- list1=[1,2,3]
- del list1[1]
- print list1
del list[1]: 删除了下标为 1 的元素
del list1: 删除这个列表
pop()
list1.pop(): 删除最后一个元素
list1.pop(索引):
list.pop(2) 对应 2 下标的元素 不是 2
pop() 删除元素会将删除的元素进行返回
后进先出 将最后一个删除
- list1=[1,2,3]
- list1.pop()
- print list1
- s=list1.pop()
返回最后一个值
列表的分片 (slice)
切片
list1[起始下标, 终止下标] 从起始下标到终止下标的所有元素 (终止下标取不到)
- list1=[3,4,5,6]
- list1[1:3] #[4,5]6 取不到
分片实质上是对原有列表进行了拷贝, 原有列表没有被改变
- list1=[0,1,2,3,4,5,6,7,8,9]
- list2=list1[3,5]
- print list1
- print list2
简化:
- list1=[3,4,5,6,]
- 1,list1[:3]# 如果索引是第一个元素开始, 可以省略下标
- list1=[0,1,2,3,4,5,6,7,8,9]
- print list1[:3]
- 2,list1[2:] #从下标为 2 的元素到最后一个元素
- list1=[0,1,2,3,4,5,6,7,8,9]
- print list[2:]
- 3,list1[:] #输出整个列表
- list2=list[:]
- list1=[0,1,2,3,4,5,6,7,8,9]
- list2=list[:]
- list3=list1
- list1[0]=99
- print list1
- print list2
- print list3
注意输出结果 list1 list3 相同 本质两个是一样的
一个是赋值 一个是拷贝
分片的进阶:
list1[起始下标: 结束下标: 步长]
- list1=[1,2,3,4,5,6,7,8,9]
- list[1,8,2] #[2,4,6,8]
- list1[::2]#[1,3,5,7,9]
- list1[::-1]# 倒序输出 [9,8,7,6,5,4,3,2,1]
列表的常用运算符
1, 比较运算符 (布尔运算符):
- list1=[1,2,3]
- list2=[4,5,6]
- print list1>list2
返回 False
先比较第一个元素, 如果第一个元素相等, 比较第二个元素, 类推
2, 逻辑运算符
- and or not
- list1=[1,2,3]
- list2=[4,5,6]
print list1>list2 and list1[0]>list2[0]
3, 列表的拼接
列表的加法 (extend())
- list1=[1,2,3]
- list2=[4,5,6]
print list1+list2 #[1,2,3,4,5,6]
同如下:
- list1=[1,2,3]
- list1.extend([4,5,6])
4, 重复运算符
- list1=[1,2,3]
- list1*3 #[1,2,3,1,2,3,1,2,3]
5, 成员关系运算
in----- 在中
not in--- 不在中
list1=[1,2,3]
print 1 not in list1 #Fasle
. 列表的函数
dir(列表)
print dir(list) 展示内置属性与方法
1,count(元素)
查看元素出现的次数
- list1=[1,3,4,4,2,5,1,1]
- print list1.count(4) #返回 2 出现 2 次
- 2,index(元素)
返回元素在列表中的位置 (返回第一次出现的位置)
list1=[1,3,1,4,2,3,1,1]
print list1.index(3)# 返回 1
从起始下标到结束下标范围中, 第一次出现元素的下标
- index(元素, 起始下标, 结束下标)
- list1=[1,3,1,4,2,3,1,1]
- print list1.index(3,3,7)# 返回 5
- 3,reverse()
整个列表反转
- list1=[1,2,3,4,5]
- list1.reverse()
- print list1 #[5,4,3,2,1]
- 4,sort()
快速排序 (默认从小到大)
- list1=[4,3,5,2]
- list1.sort()
- print list1
从大到小排序
第一:
- list1=[4,3,5,2]
- list1.sort()
- list1.reverse()
- print list1
第二:
sort(func,key,reverse)
func: 排序算法
key: 关键字
reverse: 默认 False
- list1=[4,3,5,2]
- list1.sort(reverse=True)
- print list1
. 二维列表
列表中的列表, 列表中的元素可以是列表, 每个列表元素有两个下标
- list1=[[1,2,3],[4,5,6],[7,8,9]]
- print list[0][0]# 返回 1
每个列表元素的两个下标分别代表行与列
遍历
将列表中所有的元素访问一遍, 不遗漏, 不重复
1, 一维
- list1=[1,2,3]
- for i in list1:
- print i
2, 二维
- list1=[[1,2,3],[4,5,6],[7,8,9]]
- for i in list1:
- for j in i:
- print j
. 二维列表的定义
python 列表的定义:
- 1,
- list1=[1,2,3]
- list2=[list1*3]
- print list2#[[1,2,3,1,2,3,1,2,3]]
- list2=[list1]*3
- print list2#[[1,2,3],[1,2,3],[1,2,3]]
创建二维列表:
1, 直接定义: 手工定义
2, 间接定义 : 利用推到式定义
list1=[[0 for i in range(3)]for i in range(3)]
来源: http://www.bubuko.com/infodetail-2563987.html