一、字典
1、规则
- 格式:dict1={‘键1’:‘值1’,‘键1’:‘值1’}
- 字典永远以键值对的方式出现
- 字典可以通过键找到值
- 字典是无序的,每个键值存放的前后顺序并不影响字典
- 键:可存放 不可变对象(如字符串、数字、元组);不可存放 可变对象(如列表、字典)
- 值:可存放任意对象
2、按照键对字典增、改、删
dict1 = {'Name':'Marry',1:18,'answer':'yes',('gender','age'):('girl',18)}
dict1['city'] = '上海' #['city']在字典中不存在,新增
dict1[1] = 20 #[1]在字典中存在,更新
dict1.update({'Name':'Marry me','answer':'no'}) #一次修改多个值
del dict1[('gender','age')] # del语句删除
print(dict1)
执行结果:
{'Name': 'Marry me', 1: 20, 'answer': 'no', 'city': '上海'}
3、遍历字典中的键
dict1 = {'Name':'Marry',1:18,('gender','age'):('girl',18)}
for one in dict1.keys():
print(one)
- 执行结果:
Name
1
('gender', 'age')
- 注意:dict1.keys()返回的是个类列表,可以遍历但是不能用下标,如果要使用下标则需要转换
dict1 = {'Name':'Marry',1:18,('gender','age'):('girl',18)}
print(dict1.keys())
print(list(dict1.keys())[0]) #转化为列表
- 执行结果如下:
dict_keys(['Name', 1, ('gender', 'age')]) #类列表
Name
4、遍历字典中的值(与遍历key类似)
for one in dict1.values():
print(one)
print(dict1.values())
- 执行结果:
Marry
18
('girl', 18)
dict_values(['Marry', 18, ('girl', 18)])
5、遍历字典中的键值对
for key,value in dict1.items():
print(key,value)
- 执行结果:
Name Marry
1 18
('gender', 'age') ('girl', 18)
6、字典与json文件的转换
- ① json文件转为字典
import json
#加载字符串的形式
str1='''
{
"name":"Marry",
"age":"18"
}
'''
dict1 = json.loads(str1)
print(dict1)
#加载文件的形式
with open('D:/test02.txt') as file1:
dict2 = json.load(file1)
print(dict2)
- 执行结果:
{'name': 'Marry', 'age': '18'}
{'name': 'Marry', 'age': '18'}
- ② 字典转为json文件
#1、将字典格式换转换为json格式的字符串
dict1 = {'name': 'Marry', 'age': '18','gender':'girl'}
str_json = json.dumps(dict1)
print(str_json)
#2、将字典以json格式写入到文件
fileName = 'D:/test02.txt'
with open(fileName,'w+') as file1:
json.dump(dict1,file1)
file1.seek(0)
print(file1.read())
- 执行结果:
{"name": "Marry", "age": "18", "gender": "girl"}
{"name": "Marry", "age": "18", "gender": "girl"}
二、集合
在 Python 中,set() 是一个内置函数,用于创建一个集合对象。集合是一种无序、不重复元素的容器。
set() 函数可以接受一个可迭代对象作为参数,并返回一个包含该对象所有不重复元素的集合。
1、创建集合
① 使用 set() 函数创建集合:set([1,2,3,4,5])
② 使用花括号创建集合:my_set = {1, 2, 3, 4, 5}
③ 创建空集合:set()
2、关于set() 的操作函数
A = {1,2,3}
B = {2,3,4}
# 求并集
A.union(B)
# 求交集
A.intersection(B)
# 往集合中添加元素
A.add(2)
# 删除集合中的函数
A.remove(3)