![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/51a65f394d6c2a4df0a786a2d72e04e9.png)
元组
元组介绍
- Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
- 元组中只包含一个元素时,需要在元素后面添加逗号
- 元组与字符串类似,下标索引从0开始,可以进行截取,组合等。
元组的创建
- 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可
tup1 = (1, 2, 3, 4)
tup2 = ('你好', '2021', 3)
tup3 = "a", "b", "c"
tup4 = ()
tup5 = (123,)
元组与列表的异同
- 相同点
- 列表和元组都属于有序序列;
- 都支持使用双向索引访问其中的元素;
- 以及使用count()方法统计指定元素的出现次数和index()方法获取指定元素的索引,len()、map()、filter()等大量内置函数和+、in等运算符也都可以作用于列表和元组。
- 不同点
- 元组属于不可变序列,不可以直接修改元组中元素的值,也无法为元组增加或删除元素。
- 元组没有提供append()、extend()和insert()等方法,无法向元组中添加元素;同样,元组也没有remove()和pop()方法,也不支持对元组元素进行del操作,不能从元组中删除元素,而只能使用del命令删除整个元组。
- 元组也支持切片操作,但是只能通过切片来访问元组中的元素,而不允许使用切片来修改元组中元素的值,也不支持使用切片操作来为元组增加或删除元素。
- 元组缓存于Python运行时环境,每次使用元组时无须访问内核去分配内存。
- Python的内部实现对元组做了大量优化,访问速度比列表更快。如果定义了一系列常量值,主要用途仅是对它们进行遍历或其他类似用途,而不需要对其元素进行任何修改,那么一般建议使用元组而不用列表。
- 元组在内部实现上不允许修改其元素值,从而使得代码更加安全,例如调用函数时使用元组传递参数可以防止在函数中修改元组,而使用列表则很难保证这一点。
- 元组可用作字典的键,也可以作为集合的元素。而列表则永远都不能当作字典键使用,也不能作为集合中的元素。
元组中不允许的操作
- 不允许修改元组中的元素
- 不允许增加元组中的元素
- 不允许删除元组中单个的元素,但是运行删除整个元组。
元组与列表的相互转换
li1 = [1, 2, 3, 4]
tup1 = tuple(li1)
print(tup1)
print(list(tup1))
字典
字典的介绍
基本形式
- 键值对内部用冒号(key:value)
- 两个键值对之间用逗号(,)分割
- 整个字典用大括号({})包裹
dict = {key1 : value1, key2 : value2}
键值要求
- 键可以取任何数据类型,但是必须唯一且不可变,比如数字、字符串、元组
- 值不用保持唯一,可以是任何的python对象(标准的对象 or 用户自定义的对象)
访问字典已有的值
- 把键值放到[]中
print(dict[key1])
增加元素
dict[key3] = value3
dict[key4] = value4
删除元素
- 删除单一元素
del dict[key1]
- 清空字典
dict.clear()
- 删除字典
del dict
字典常见操作
序号 | 函数名 | 描述 |
---|
1 | dict.get(k[,d]) | 返回指定键的值,如果值不在字典中,则返回default值 |
2 | dict.items() | 以列表返回可遍历的(键, 值) 元组对 |
3 | dict.keys() | 以列表返回字典所有的键 |
4 | dict.values() | 以列表返回字典所有的值 |
作业1
lis1 = ['name', 'author', 'introduce']
lis2 = ['NORWEGIAN WOOD', 'Haruki Murakami', 'balalalalal...']
dic1 = dict(map(lambda x, y : [x, y], lis1, lis2))
print(dic1)
dic2 = dict(zip(lis1, lis2))
print(dic2)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e92f054b4e3db7b894edd36bd43f4a9a.png)
作业2
Amy_info = {'name': 'amy','addr': 'hunan','weight': 90}
print(Amy_info.keys())
print(Amy_info.values())
for key, value in Amy_info.items():
print(key, value)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/dc35c16456c456224ef2b714a33682b4.png)
作业4
b = b'PoPoPolarBear'
print(str(b,encoding = "utf-8"))
print(bytes.decode(b))
s = 'PoPoPolarBear'
print(bytes(s, encoding = "utf8"))
print(str.encode(s))
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2675d37545de728414ed1f0f479b4d20.png)