一、列表
1、基本定义
特征:有序,可变的,支持索引
作用:存储数据,支持几乎所有数据类型
定义方式:
lst = [1,"alex","hei"] #用逗号分割的为一个元素
print(lst[0])
print(id(lst[0]))# id为获取对象地址
2 、列表的增删改查
1、增:
append #追加
lst.append("大煎饼")#追加,在列表最后一个位置添加一个内容
insert #插入
lst.insert("大煎饼") # 插入以后尽量不要使用(当数据量比较大的时候会降低效率)
extend #迭代添加
lst.estend("可迭代内容")
2 .删:
pop # 弹,默认删除最后一个
lst.pop()
print(lst)
lst = ["dsb",123,True,"黑哥"]
lst.pop(2)#通过指定索引进行删除
print(lst)
remove # 移除——通过元素名字进行删除
lst = ["dsb",123,True,"黑哥"]
lst.remove("dsb") # 移除——通过元素名字进行删除
print(lst)
del #删除,所有数据类型公用
del lst[0]# 通过索引删除
del lst[0:3] #通过切片删除
del lst[0:6:2]#通过步长删除
clear #清空
lst.clear
print(lst)
3 . 改:
1st =["dsb",123,"dsb",Ture,"黑哥"]
lst[1] = "123"
print(lst)
1st =["dsb" ,123,"dsb",Ture,"黑哥"]
lst[1:4] = 12,13,14,15
print(lst)
lst = ["dsb",123,"dsb",True,"黑哥"]
lst[1:4:2] = "12"
print(lst) # 步长不为1的必须用一一对应,多一个也不行,少一个也不行
4、查:
for循环
lst = ["dsb",123,"dsb",True,"黑哥"]
for i in lst
print(i)
5、列表的嵌套
取值通过索引进行取值,一层一层的进行查找
lst = [1,"alex","春生","小东北","渣弟",
["大黑哥",["常鑫",["自行车"],"大煎饼","掉井盖","三金"],"冯强","海峰",["太白金星","女神","吴超",["肖锋"]]]]
print(lst[-1][1][1][0])
#不管什么类型进行切片的时候获取都到都是源数据类型
二、元组(tuple)
1、基本定义
- 有序,不可变,支持索引
- 元组用于存储一些比较重要的信息
- 元组在配置文件中会使用
- 元组就是不可变的列表
2.定义方式
tu = (1,"alex",Ture,"大黑哥",[1,2,3])
lst = [1,"alex",True,"大黑哥",[1,2,3]]
print(tu)
tu = (1,"alex",True,"大黑哥",[1,2,3])
print(tu[0:6])
for 循环
for i in tu:
print(i)
三 、range:范围
print(lst(range(1,10)) #range 获取数据时顾头不顾尾
- python3中,range是一个可迭代对象,写的是怎样打印的就是怎样
- pythnon2中,range返回的是一个列表
print(lst(range(0,10,1)))# 步长不写时默认为1
- range(起始位置,终止位置) -- [起始位置:终止位置]
- range(终止位置)——[:终止位置]
- range(起始位置,终止位置,步长)——[起始位置;终止位置:步长]
- for和range配合使用
面试题:
lst = []
for i in lst:
lst.append("alex")
print(lst) # 不会打印内容 因为lst是空的
lst = [1,2]
for i in lst:
lst.append("alex")
print(lst) # 循环打印lst中的内容 -- 此循环是死循环
lst = [1,2]
for i in lst:
lst.append("alex")
print(lst) # 死循环 -- 不会打印内容
lst = []
for i in range(5):
lst.append([])
print(lst) # [[],[],[],[],[]]
lst = [1,2]
lst[0] = lst
print(lst) # [[...],2]