本节内容
- 列表
- 列表的深浅拷贝
- 元组
- 字典及常用操作
- 模块初识
- Python程序是怎么运行起来的?
1. 列表操作
列表出现的原因:为了存储多个数据
下标用于标识元素在列表中从左到右的位置
1、取单个元素:names[2] #负数代表从右向左的顺序,-1代表最后一个元素
2、取多个元素:name[1:2] #切片,取左闭右开区间的元素
![](https://i-blog.csdnimg.cn/blog_migrate/f0f6d34f062b43b8e766a490bd0e4bf4.png)
3、按步长切:
4、切片是从左往右取:
5、追加:
append("element")
6、
既可以插入也可以修改:insert(subscript,"element")
7、删除:
- remove("element")
- del list[subscript]
- pop() #不输入下标默认删除最后一个,可输入下标删除指定位置的元素
![](https://i-blog.csdnimg.cn/blog_migrate/1c07c3dcfb678aa654f4eda36585c078.png)
9、统计元素在列表中的个数:
count() 方法
![](https://i-blog.csdnimg.cn/blog_migrate/9f4ab9e52f501b5c864c4f3b4e447b53.png)
10、 清空列表:clear() 方法
11、反转:reverse()方法:
12、排序:sort()方法:按ASII码的字符对应的数值大小排序,优先级:特殊符号 > 阿拉伯数字 > 大写字母 > 小写字母
13、合并:extend()
2. 列表的浅拷贝与深拷贝
1、为什么会出现深浅拷贝?
究其原因,归根到底是降低内存占用,减少内存开销,避免在内存中出现重复不必要的数据块。
2、什么是浅拷贝
浅拷贝:只拷贝列表的第一层
浅拷贝的三种方式:
- copy():
- = #变量是一块特定大小内存空间的别名,因此可以通过赋值的方式传递内存地址,
- 通过工厂函数:list()
第二层拷贝的是一个内存地址,指向同一块共享的内存块
案例一:
案例二:
![](https://i-blog.csdnimg.cn/blog_migrate/52e33fa0c078b6cd3b76601de78f35dd.png)
案例三:
解决方法-深拷贝:deepcopy()
3.元组
1、为什么出现元组?
元组其实和列表差不多,也是存一组数,只不过它一旦被创建,边不能再修改,所以又叫只读列表
2、应用场景:
用于存储不可变数据
3、语法和方法:
![](https://i-blog.csdnimg.cn/blog_migrate/797fba422fd58c38a2ba9cf13471acfc.png)
4.字典及常用操作
1、为什么需要字典:Python 中字典是一种基本的数据结构,它将键与值联系起来,形成的键值对形式,让我们可以通过键快速找到对应的值。
2、字典的创建
在 Python 中创建字典很简单,使用 { }
即可创建一个空字典,可以使用 :
来连接键和值,然后使用 ,
分割多个键值对。
# 字典创建
empty_dict = {}
member = {"Lilei": 16, "Hanmeimei": 17}
2、字典的特点:
- 无序的
- 没有下标,通过key取值
- key必须是惟一的,所以天生去重
3、字典的常用操作
1.合并两个字典,如果有交叉的key则修改:update()
![](https://i-blog.csdnimg.cn/blog_migrate/7060533b0b89d484ddf5a90975193cbf.png)
2.把字典转换为列表:items()
![](https://i-blog.csdnimg.cn/blog_migrate/65ff8a2596918074f84e1278e8353af1.png)
3.初始化一个字典:fromkeys([key1,key2,key3],[value]
注意:此处又涉及深浅拷贝,如:
![](https://i-blog.csdnimg.cn/blog_migrate/11a0042c16eac5cf728ad4678d5a6e1c.png)
4. 字典的常用操作-----修改:dic_name[key] = value #如果存在则修改,不存在则创建一条
![](https://i-blog.csdnimg.cn/blog_migrate/ae906586140b3fe6d3c010ddc2904be1.png)
5. 字典的常用操作-----查找:
- dic.[key] #获取一个键对应的值
- dic.get(key) #存在就返回值,不存在就返回NULL;
- in #存在返回True,不存在返回 False
- get() #如果一个key不存在,没有返回信息。存在则返回键对应的值
6.字典的常用操作-----打印键和值:
打印字典里的全部value:value()
打印字典里的全部key:value()
将键和值一起打印:dic.items()
![](https://i-blog.csdnimg.cn/blog_migrate/0e36c43672b98cfd0667136d7365efea.png)
7 .字典的常用操作-----设置默认值,如果字典存在值,则返回字典里的值,如果不存在,向字典添加定义好的键和值值:setdefault(key, value)
8. 典的的遍历:
1.第一种方法:
![](https://i-blog.csdnimg.cn/blog_migrate/9f36dc81681ded44a133058c50056676.png)
2.第二种方法,用items()把字典转成列表,中间多进行了一次转换动作,所以效率较低
![](https://i-blog.csdnimg.cn/blog_migrate/9a49b2f4116f15b824ec811456fbf077.png)