内置数据结构(变量类型)
- list
- set
- dict
- tuple
list(列表)
- 一组有顺序的数据的组合
- 列表常用操作
- 访问:
- 使用下标操作(索引)
- 列表的位置是从0开始
- 分片操作:
- 对列表进行任意一段的截取
- l[:]
- 注意截取范围,包含左边的下标值,不包含右边的下标值
- 下标值可以为空,如果不写,左边下标值默认为0,右边下标值为最大数加一,即表示截取到最后一个数据
- 分片可以控制增长幅度,默认增长幅度为1
- 下标可以超出范围,超出后不在考虑多余下标内容
- 下标值,增长幅度可以为复数
- 为复数,表明顺序是从右到左
- 规定:数组最后一个数字的下标是-1
- 分片操作是生成一个新的list
- 内置函数id,负责显示一个变量或者数据的唯一确定编号
List(列表)
del 删除命令
-
举例:
a=[1,2,3,4,5] del a[2] print(a) 运行结果:[1,2,4,5]
-
使用del删除后,得出的列表不是新生成的列表
列表相加
-
使用加号链接两个列表
-
举例:
a=[1,2,3,4] b=[5,6,7,8] c=a+b print(c) 运行结果:[1,2,3,4,5,6,7,8]
列表相乘
-
列表直接跟一个整数相乘,相当于把n个列表接在一起
-
举例:
a=[1,2,3,4,5] b=a*3 print(b) 运行结果:[1,2,3,4,5,1,2,3,4,5,1,2,3,4,5]
成员资格运算:
-
判断一个元素是否在list里边
-
举例:
a=[1,2,3,4,5] b=8 c=b in a print(c) 运行结果:False
-
链表的遍历:for,while
双层列表循环
-
a为嵌套列表,或者叫双层列表
-
举例:
a=[["one",1],["two",2],["three",3]] for k,v in a: print(k,"--",v) 运行结果:one--1 two--2 three--3
列表内涵:list content
-
通过简单方法创作列表
-
for创建
-
举例1:
a=[1,2,3,4,5] #下面代码的含义是对于所有a中的元素,逐个放入新列表b中 b=[i for i in a] print(b) 运行结果:[1,2,3,4,5]
-
举例2:对a中所有的元素乘以10,生成一个新的list
a=[1,2,3,4,5] b=[i*10 for i in a] print(b) 运行结果:[10,20,30,40,50]
-
举例3:过滤原来list中的内容生成一个新list
a=[x for x in range(1,35)]#生成一个1到34的列表 #把a中所有偶数生成一个新的列表b b=[m for m in a if m%2==0] print(b) 运行结果:[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34]
-
举例4:列表生成式可以嵌套
a=[i for i in range(1,4)]#生成list a print(a) b=[i for i in range(100,400) if i %100==0] print(b) #列表生成式可以嵌套,此时等于两个for循环嵌套 c=[m+n for m in a for n in b] print(c) #上面代码跟下面代码等价 for m in a: for n in b: print(m+n,end=" ") print() #嵌套的列表生成式也可以用条件表达式 c=[m+n for m in a for n in b if m+n<250] print(c) 运行结果:[1,2,3] [100,200,300] [101,201,301,102,202,302,103,203,303] 101 201 301 102 202 302 103 203 303 [101,201,102,202,103,203]
关于列表的常用函数
- len:求列表的长度
- max:求列表中的最大值
- min:求列表中的最小值
- lsit:将其他格式的数据转换成list
关于列表的函数
-
append插入一个内容,在末尾追加
-
举例:
a=[i for i in range(1,5)] print(a) a.append(100) print(a) 运行结果:[1,2,3,4] [1,2,3,4,100]
-
insert:制定位置插入
-
insert(index,data)插入位置是index前面
-
举例:
print(a) a.insert(3,666) print(a) 运行结果:[1,2,3,4,100] [1,2,3,666,4,100]
-
删除:del
-
pop,从队尾拿出一个元素,即把最后一个元素取出来
-
举例:
print(a) last_ele=a.pop() print(last_ele) print(a) 运行结果:[1,2,3,666,4,100] 100 [1,2,3,666,4]
-
remove:在列表中删除指定的值的元素
-
如果被删除的值没在lsit中,则报错。即删除list指定值的操作应该用try…excepty语句,或者先进行判断
if x in list: list.remove(x)
-
举例:
print(a) print(id(a)) a.remove(666) print(a) print(a(id)) 运行结果:[1,2,3,4,666] 140249408978184 [1,2,3,4] 140249408978184 #输出id值一样,说明remove操作是在原list直接操作
-
clear:清空
-
举例:
print(a) print(id(a)) a.clear() print(a) print(id(a)) 运行结果:[1,2,3,4] 140249408978184 [] 140249408978184
-
如果不需要列表地址保持不变,则清空列表可以使用以下方式:
a=lsit() a=[ ]
-
reverse:翻转列表内容,原地翻转
-
举例:
a=[1,2,3,4,5]
print(a)
print(id(a))
a.reverse
print(a)
print(id(a))
运行结果:[1,2,3,4,5]
14024909135624
[5,4,3,2,1]
14024909135624 -
extend:扩展列表,两个列表,把一个直接拼接到后一个上
-
举例:
a=[1,2,3,4,5] b=[6,7,8,9,10] print(a) print(id(a)) a.extend(b) print(a) print(id(a)) 运行结果:[1,2,3,4,5] 140249408367816 [1,2,3,4,5,6,7,8,9,10] 140249408367816
-
count:查找列表中指定值或元素
-
举例:
a=[1,2,3,4,5,6,7,8,9,10]
print(a)
a.append(8)
a.insert(4,8)
a.len=a.count(8)
print(a.len)
运行结果:[1,2,3,4,5,6,7,8,9,10]
[1,2,3,4,8,5,6,7,8,9,10,8]
3 -
copy:拷贝,浅拷贝
-
举例:
a=[1,2,3,4,5,666] b=a #list类型,简单赋值操作,是传地址 b[3]=777 print(id(a)) print(b) print(id(b)) 运行结果:[1,2,3,4,5,666] [1,2,3,777,5,666] 140249408975432 [1,2,3,777,5,666] 140249408975432 #为了解决以上问题,list赋值需要采用copy函数 b=a.copy() print(a) print(id(a)) print(b) print(id(b)) 运行结果:[1,2,3,4,5,666] [1,2,3,777,5,666] 140249408975432 [1,2,3,777,5,666] 140249408976776 # b[3]=888 print(a) print(b) 运行结果:[1,2,3,777,5,666] [1,2,3,888,5,666]