Python基础语法系列导航
1.第一篇——开发环境、变量、数据类型、运算符介绍
2.第二篇——流程控制、循环、字符串介绍
3.第三篇——列表和元组介绍
4.第四篇——字典和集合介绍
5.第五篇——部分数据类型公共方法、生成式介绍
6.第六篇——函数介绍
7.第七篇——文件操作介绍
Python基础语法【第四篇】—字典和集合介绍
前言
Python基础语法笔记,记录一下学习过程
提示:以下是本篇文章正文内容,下面案例可供参考
09.字典和集合
总结:字典和集合都是可变数据类型
1.字典
1.字典的应用场景
-
字典,字典里面的数据是以键值对形式出现,字典数据和数据顺序没有关系,即字典不支持下标,后期无论数据如何变化,只需要按照对应的键的名字查找数据即可。
2.字典的语法
-
字典特点:
- 符号为{ }大括号
- 数据为键值对形式出现
- 各个键值对之间用逗号隔开
# 有数据字典 dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} # 空字典 dict2 = {} dict3 = dict() # dict()函数生成
注意:
- 一般称冒号前面的为键(key),简称k;冒号后面的为值(value),简称v。
- 字典中的key值必须是不可变类型。
3.字典常用操作方法
3.1增加
-
写法:字典序列[key] = 值
注意:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} dict1['name'] = 'Rose' # 结果:{'name': 'Rose', 'age': 20, 'gender': '男'} print(dict1) dict1['id'] = 110 # {'name': 'Rose', 'age': 20, 'gender': '男', 'id': 110} print(dict1)
注意:字典为可变数据类型。
3.2删除
-
del() / del:删除字典或删除字典中指定键值对。
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} del dict1['gender'] # 结果:{'name': 'Tom', 'age': 20} print(dict1) del dict1 等同于写法 del(dict1) # 结果:NameError: name 'dict1' is not defined print(dict1)
-
clear():清空字典
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} dict1.clear() # 结果:{} print(dict1)
3.3修改
-
写法:字典序列[key] = 值
注意:如果key存在则修改这个key对应的值 ;如果key不存在则新增此键值对。
3.4查找
3.4.1 key值查找
-
举例:
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} print(dict1['name']) # Tom print(dict1['id']) # 报错
注意:如果当前查找的key存在,则返回对应的值;否则则报错。
3.4.2 get()
-
语法:
字典序列.get(key, 默认值)
注意:如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。
-
举例:
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} print(dict1.get('name')) # Tom print(dict1.get('id', 110)) # 110 print(dict1.get('id')) # None
3.4.3 keys()
-
作用:获取字典的键列表
-
语法:
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} # dict_keys(['name', 'age', 'gender']) print(dict1.keys())
3.4.4 values()
-
作用:获取字典的值列表
-
语法:
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} # dict_values(['Tom', 20, '男']) print(dict1.values())
3.4.5 items()
-
作用:获取字典的键值对列表,其中每对由元组存储
-
语法:
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} # dict_items([('name', 'Tom'), ('age', 20), ('gender', '男')]) print(dict1.items())
4.字典循环遍历
4.1遍历字典的key
-
作用:遍历打印字典的键,没有列表包含!
-
举例:
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} for key in dict1.keys(): print(key)
4.2遍历字典的value
-
作用:遍历打印字典的值,没有列表包含!
-
举例:
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} for value in dict1.values(): print(value)
4.3遍历字典的元素
-
作用:遍历打印字典的每对键值对,没有列表包含!
-
举例:
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} for item in dict1.items(): print(item)
4.4遍历字典的键值对
-
作用:遍历打印字典的每对键值对,最常用的
-
举例:
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} """ name = Tom age = 20 gender = 男 """ for key, value in dict1.items(): print(f'{key} = {value}')
5.总结
- 定义字典
dict1 = {'name': 'Python', 'age': 30}
dict2 = {}
dict3 = dict()
-
常见操作
-
增/改
字典序列[key] = 值
-
查找
- 字典序列[key]
- keys()
- values()
- items()
-
2.集合
1.集合定义
-
创建集合使用
{}
或set()
, 但是如果要创建空集合只能使用set()
,因为{}
用来创建空字典。s1 = {10, 20, 30, 40, 50} # {40, 10, 50, 20, 30} print(s1) s2 = {10, 30, 20, 10, 30, 40, 30, 50} # {40, 10, 50, 20, 30} print(s2) s3 = set('abcdefg') # {'c', 'g', 'b', 'f', 'a', 'd', 'e'} print(s3) s4 = set() print(type(s4)) # set s5 = {} print(type(s5)) # dict
特点:
- 集合可以去掉重复数据;
- 集合数据是无序的,故不支持下标
- set()函数可以创建一个无序不重复的元素集,这个函数至多可以传一个参数。
2.集合常用操作
2.1增加数据
-
add():追加的数据不能是列表,将添加的元素作为整体。
-
举例:
s1 = {10, 20} s1.add(100) s1.add(10) print(s1) # {100, 10, 20}
因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作。用于清洗数据中的去重
-
-
update():追加的数据要求是序列,可迭代的对象,对其遍历后,依次添加到集合。
-
语法:
集合序列.update(序列数据)
-
举例:
s1 = {10, 20} # s1.update(100) # 报错, 因其不是序列,而是数字 s1.update([100, 200]) s1.update('abc') # {'a', 100, 200, 10, 'b', 'c', 20} print(s1)
注意:序列,指的是一块可存放多个值的连续内存空间
- 在Python中,序列类型包括字符串、列表、元组、集合和字典
- 字典和集合比较特殊,它们都是无序的,没有下标,因此无法支持通过下标的索引、切片、相加和相乘操作。
-
2.2删除数据
-
remove():删除集合中的指定数据,如果数据不存在则报错。
-
语法:
集合序列.remove(数据)
-
举例:
s1 = {10, 20} s1.remove(10) print(s1) s1.remove(10) # 报错, 因为数据已经不存在了 print(s1)
-
-
discard():删除集合中的指定数据,如果数据不存在也不会报错。
-
语法:
集合序列.discard(数据)
-
举例:
s1 = {10, 20} s1.discard(10) print(s1) s1.discard(10) print(s1)
-
-
pop():随机删除集合中的某个数据,并返回这个数据。
-
语法:
集合序列.pop()
-
举例:
s1 = {10, 20, 30, 40, 50} del_num = s1.pop() print(del_num) print(s1)
注意:集合这里的pop函数是随机删除,而列表中的pop默认是删除最后一个
-
2.3查找数据
-
in:判断数据在集合序列
-
not in:判断数据不在集合序列
s1 = {10, 20, 30, 40, 50} print(10 in s1) # True print(10 not in s1) # False
3.总结
-
创建集合
- 有数据集合
s1 = {数据1, 数据2, ...}
- 无数据集合
s1 = set()
-
常见操作
- 增加数据
- add()
- update()
- 删除数据
- remove()
- discard()
- 增加数据
总结
有误之处,欢迎指正。