一、for循环
while 基础语法:核心的目的就是用来重复执行代码的逻辑
for循环:针对多个数据遍历查看
格式:
for 临时遍历 in 数据:
循环重复执行代码:循环次数是数据的个数,每循环一次会将数据中的第n个位置的数据取出来
for i in "python":
print(i)
range()函数:生成一组整数序列
range(start,end,step)
注意:
左闭右开,start不写默认为0,step不写默认为1,也可以是负数,此时start>end
for循环和while循环使用场景:如果确定循环次数,使用for循环,不确定循环多少次,用while循环
二、列表
1、定义:
定义:列表是一个【可修改】的,元素以 【逗号】分割,以【中括号】包围的有序序列
2、使用:
- 定义空列表:lst = [] lst = list()
- 定义非空列表:lst = list([1,2,3]) lst = [1,2,3]
- 列表中的元素都有对于的索引,索引从0开始,对应列表中的第一个数据,索引可以为负,索引-1对应列表中最后一个元素
根据索引取出列表中的元素: 列表[索引] - for循环可以遍历列表
for i in [1,2,3,4,5]:
print(i)
- 列表相加:
[1,2,3]+[4] —[1,2,3,4,] - 列表重复:
[1,2,3]*3—[1,2,3,1,2,3,1,2,3] - 列表切片格式:
列表[开始索引:结束索引:步长]
开始索引不写,默认从开头
结束索引不写,默认到尾部
步长不写,默认是1,如果步长为负,则是倒着取
区间是左闭右开 - 使用多个变量接收元素
lst = ['a','b']
v1,v2 = lst
print(v1)
print(v2)
- 序列解包:*变量名
lst = ['a','b','c']
v1,*v2 = lst
print(v1)
print(v2)
3、列表类型特有方法(增删改查)
- 增加:
1.1 append(),追加在列表的尾部加入指定元素
用法:列表 . append(元素)
1.2 extend(),将指定序列的元素追加到列表尾部
1.3 insert()将指定的元素插入到对应索引的位置上,超过索引会在末尾插入
用法: 列表 . insert (索引,元素) - 删除
2.1pop()根据索引删除列表中的一个元素,默认删除最后一个元素,并且返回该元素的值
用法:列表 . pop(索引)
2.2 remove()从左到右删除第一个找到的元素
用法:列表 . remove(元素)
2.3 clear()清空列表
2.4 del可以删除整个列表或者列表中的数据,是python的内置功能
用法: del 列表 - 修改
3.1 列表[index] = 值,将值赋值给指定位置的元素
3.2 reverse(),顺序倒序
3.3 sort(),将列表默认从小到大排序,按照ASCII码表进行操作
用法: 列表 . sort()
3.4 sorted(),返回一个排好序的列表,原列表不变
用法: sorted(列表)
如果是对字符串元素进行排序,默认是对字符串中的每个字符元素按照ascii码表进行比较 - 查找
4.1 count(),返回元素在列表中的个数
用法: 列表 . count (元素)
4.2 index(),从左向右查,返回某个匹配元素对应的索引值
用法: 列表 . index(元素)
4、列表嵌套 :
列表中可以多层次的嵌套列表
len() : 返回一串数据的长度 len(列表)
三、深浅拷贝
1、python的数据类型归纳:
- 简单数据类型: 数值型,str
- 复杂数据类型:list,tuple,dict,set
- 保存方式:
简单数据类型==》直接保存数据
复杂数据类型==》保存内存地址
2、浅拷贝:
对于第一层创建的是新的内存地址,第二层开始,指向的都是同一个内存地址
#拷贝copy 列表.copy()
lst = [1,2]
#lst2是lst的浅拷贝(只拷贝了一层)
lst2 = lst.copy
lst.append(3)
print(id(list),id(lst2))
a = [10]
lst = [1,2,a]
lst2 = lst.copy()
a.append(11)
print(lst2)
3、深拷贝
嵌套的可变数据重新开辟一片内存空间
import copy
a = [10]
lst = [1,2,a]
lst2 = copy.deepcopy(lst)
a.append(11)
print(id(lst[2][0]))