一、列表
定义:用于存储一组数据的有序序列
语法声明:[元素1, 元素2, 元素3, ...]
二、特点
1、列表是有序的
2、列表中可以存储重复的数据
3、列表中可以存储不同数据类型的数据
4、列表是一个可变的数据类型;可以修改的
三、方法
1、增
(1).append(obj) 末尾追加
(2).insert(index, obj) 在指定位置添加元素
(3).extend(iterable) 可迭代对象(序列), 将序列中的元素一次性的追加在列表的末尾
(4)+
(5)*
2、删
(1).pop(index) 删除指定索引值的元素
(2).pop() 默认删除最后一个元素
(3).remove(obj) 删除指定的元素
(4).clear() 清空列表, ---> 空列表
(5)del python内置的关键字 功能是删除
(6)del list[index] 可以用来删除列表中的某个指定索引值的元素
(7)del list 也可以用来删除整个列表
del str 也可以用来删除一个字符串
3、改
(1)通过索引值进行更改 --> 列表名[索引值] = 新值
(2).reverse() : 反转这个列表, 将列表中的元素倒过来
(3).sort(key, reverse=False)
key: 排序的规则
reverse: 默认为False 正序
可以修改为True 倒序
4、查
(1).count(obj) 查询元素在列表中出现的次数
(2).index(obj) 查询元素从左开始第一次出现在列表中的索引值,查询不到报错
四、嵌套列表
1 # isinstance(对象, 类型) 判断元素对象是否是某个类型的
2 list2 = [['a', 'b'], ['abc', 100], "abc", 100, [0.9, 0.7]]
3 for x in list2:
4 if isinstance(x, list): # x 是列表:
5 for y in x:
6 print(y)
7 else:
8 print(x)
五、深浅拷贝
列表的拷贝:
1、列表在内存中的数据存储
整个列表有个内存地址, 列表中的每个元素(理解为一个个个的变量), 每个变量存储对应数据的内存地址
2、浅拷贝
浅拷贝的列表, 内层嵌套列表与被拷贝对象指向同一块地址;
* 俗话曰: 通过浅拷贝出来的列表, 一旦内层嵌套列表发生改变, 拷贝对象和被拷贝对象, 的内层嵌套列表都会发生改变
对于浅copy来说, 第一层创建的是新的内存地址, 而从第二层开始, 指向的都是同一个内存地址,所以对于第二层以及更深的层次来说,保持一致性。
1 import copy # 模块 .py文件 使用模块中的功能,第一步需要将模块导入到工作文件中
2 copy.copy() # 浅拷贝
3、深拷贝
1 import copy # 模块 .py文件 使用模块中的功能,第一步需要将模块导入到工作文件中
2 copy.deepcopy() # 深拷贝
嵌套的可变数据类型重新开辟一块内存空间
拷贝对象与被拷贝对象, 拥有独立的内存空间, 一方发生改变,另一方不受影响