组合数据类型-列表
都有哪些数据类型
Python中提供了四种组合数据类型
- 列表 使用关键字 list 表示
- 元组 使用关键字 tuple 表示
- 集合 使用关键字 set 表示
- 字典 使用关键字 dict 表示
面试题
简单叙述一下 python 中都有哪些数据类型?
python 官方推荐使用的数据类型有 6种,分别是
字符串 , 数值 (整数|浮点数|复数|布尔)
列表 ,元组 ,集合 ,字典这些都是内建的可以直接使用的类型,实际开发时还可以使用更多的数据类型
但是我参与的项目组中一般为了更准确的描述使用不同的数据,将直接使用的数据类型区分为三种类型,分别是:基础数据类型,包括字符串,数值,布尔类型以及比较简单的空值None
组合数据类型,包含列表,元组,集合,字典
对象数据类型,有python内建的类型以及自定义类型
什么是列表
列表:组合数据类型中的一种数据类型。
用来有顺序的存储可以重复的可以是不同数据类型的多个数据
列表的出处
软件是解决生活中的实际问题,还原生活场景,通过代码的形式表示生活的中事物
更好的解决生活中遇到的问题!列表的操作,如图所示:
列表都有哪些操作
列表作为一个容器,可以完成数据的 CURD 操作
1. 查看列表的所有操作方式
python提供了一个操作 dir()
可以查看指定类型的所有操作方式
>>> dir(list)
# 此处省略了双下划线方法
['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
2. 查看某个函数的作用
当我们查看到了某个函数,但是不知道怎么去执行的时候,可以使用 python 提供的 help() 来查看帮助说明
>>> help(list.append)
Help on method_descriptor:
append(self, object, /)
Append object to the end of the list.
创建列表
# 1. 声明一个空列表:存放学员姓名
# 通过列表关键字声明 【推荐】
stu_names = list()
# 通过快捷符号声明,混合开发时不推荐
# 其它语言中 [] 用来声明数组
stu_names = []
# 2. 创建一个非空列表
# 使用关键字声明 【画蛇添足】
stu_names = list(["ming","ning","tian"])
# 使用符号声明【推荐】
stu_names = ["ming","ning","tian"]
增加数据
列表中增加数据,有三种操作方式
- append(obj) : 在列表的末尾追加一个数据
- extend(objs) : 在列表的末尾追加一组数据
- insert(index,obj) : 在列表的指定位置,追加一个数据
查询数据
查看列表中的数据,有不同的操作方式
1. 查看列表中的所有数据
# 通过列表名称,直接查看列表中的所有数据,固定的展示格式!
>>> lst = [1,2,3,4]
>>> print(lst)
[1, 2, 3]
2. for循环遍历数据
>>> lst = [1,2,3]
>>> for i in lst:
... print(i)
...
>>> 1
>>> 2
>>> 3
3. 查看列表中的某个数据
>>> lst = [1,2,3]
>>> print(lst[1])
2
4. 查看某个数据在列表中出现的次数
>>> lst = [1,2,3,4,2,1]
>>> print(lst.count(2))
2
5. 查询某个数据在列表中的索引
>>> lst = [1,2,3,4,5]
>>> print(lst.index(3))
2
小结:列表中的所有查询操作
修改数据
# 在指定的下标位置,使用新数据覆盖原来的数据
>>> lst = [1,2,3,4,5]
>>> lst[0] = 0
>>> print(lst)
[0, 2, 3, 4, 5]
删除数据
列表做为一个可以存储多个数据的容器,删除数据就有多种操作方式
- pop() 删除并返回指定编号位置的数据,默认为最后一个
- del list[索引] 删除指定编号位置的数据
- remove(obj) 删除列表中指定的一个数据
- clear() 删除列表中的所有数据
- del list 删除整个列表
列表中的其它操作
- recerse() 翻转列表
- sort 为列表排序
- len 返回列表长度
深拷贝与浅拷贝
浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。
深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。