一、字典
1. 创建字典
特点:
- 符号为大括号
- 数据为键值对形式出现
- 各个键值对之间用逗号隔开
# 创建有数据的字典
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
print(type(dict1))
# 创建空字典
dict2 = {}
print(type(dict2))
dict3 = dict()
print(type(dict3))
2. 增加数据
字典序列[key] = 值
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
dict1["name"] = "张飞"
print(dict1) # {'name': '张飞', 'age': 18, 'gender': '男'}
dict1["id"] = 110
print(dict1) # {'name': '张飞', 'age': 18, 'gender': '男', 'id': 110}
注意:
- 如果key存在,则修改这个key对应的值,如果key不存在,则新增此键值对
- 字典为可变类型
3. 删除数据
- del()/del:删除字典或删除字典中指定的键值对
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
del dict1["name"] # key不存在就会报错
print(dict1) # {'age': 18, 'gender': '男'}
del dict1
print(dict1) # 会报错
- clear(): 清空字典中的数据
4. 修改数据
字典序列[key] = 值 # key存在就修改,不存在就新增
5. 查找数据
- key值查找
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
print(dict1["name"]) # Tom
print(dict1["id"]) # 不存在,就报错
注意:如果当前查找的key存在,则返回对应的值,否则就报错
- get()函数
字典序列.get(key, 默认值)
注意:如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
print(dict1.get("name")) # Tom
print(dict1.get("id", 110)) # 110
print(dict1.get("id")) # None
- keys():查找字典中所有的key,返回可迭代对象
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
print(dict1.keys()) # dict_keys(['name', 'age', 'gender'])
- values():查找字典中所有的value,返回可迭代对象
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
print(dict1.values()) # dict_values(['Tom', 18, '男'])
- items():查找字典中所有的键值对,返回可迭代对象,里面的数据是元组,元组数据1是字典的key,数据2是字典的value。
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
print(dict1.items()) # dict_items([('name', 'Tom'), ('age', 18), ('gender', '男')])
6. 字典的循环遍历
- 遍历字典的key
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
for key in dict1.keys():
print(key)
- 遍历字典的value
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
for value in dict1.values():
print(value)
- 遍历字典的items,内部是元组,元组有两个数据
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
for item in dict1.items():
print(item)
- 遍历字典的键值对(字典拆包)
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
for key, value in dict1.items():
print(f"{key} = {value}")
二、集合
1. 创建集合
创建集合使用{}或set,但是如果要创建空集合只能使用sert(),因为{}用来创建空字典
s1 = {10, 20, 30, 40}
print(s1) # 集合没有顺序,不支持下标操作
s2 = {10, 20, 30, 40, 10}
print(s2) # {40, 10, 20, 30}
s3 = set("abcdefg")
print(s3) # {'d', 'a', 'e', 'b', 'c', 'f', 'g'}
# 创建空集合
s4 = set()
print(type(s4)) # <class 'set'>
s5 = {}
print(type(s5)) # <class 'dict'>
注意:1. 集合没有顺序,不支持下标操作
2. 集合可以去重
2. 集合增加数据
- add()
s1 = {10, 20}
s1.add(100) # 集合是可变类型
s1.add(100) # 集合的去重功能
s1.add([10, 20, 30]) # 会报错
s1.update([10, 20, 30]) # 增加的数据是序列
s1.update(100) # 会报错
注意:因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有的数据,则不进行任何操作。
- update():追加的数据是序列
3. 集合删除数据
- remove():删除集合中的指定数据,如果数据不存在则报错
s1 = {10, 20}
s1.remove(10) # {20}
s1.remove(10) # 报错
- discard():删除集合中的指定数据,如果数据不存在也不会报错
- pop():随机删除某个数据,并返回这个数据
s1 = {10, 15, 25, 35, 8}
print(s1.pop())
print(s1.pop())
4. 集合查找数据
- in:判断数据在集合序列
- not in :判断数据不在集合序列
s1 = {10,20,30,58}
print(10 in s1) # True
print(10 not in s1) # False
持续更新中。。。
下一节:Python运算符和推导式