11.字典
大约 3 分钟学习笔记Python基础
一、定义
定义空字典:
members = {}- 字典对象定义用 花括号 - {},字典里的每个元素之间用 逗号- ,隔开;
- 每个元素都是一个 键值对 ,键和值之间用 冒号 - :隔开;- members = { 'account1' : 13 , 'account2' : 12 }- 注意 - 1.字典的 - 键必须是可以进行 哈希值计算 的对象,通常是- 数字或者- 字符串;- 2.字典的 - 值可以是 任何类型 的对象, 包括 数字、 字符串、 列表、字典、自定义类型 等等。
:::
members = {
    'account1'  : {'account':'account1', 'level': 13, 'point':3000} ,
    'account2'  : {'account':'account2', 'level': 12, 'point':36000}
}- 字典对象: 根据 键 去查找 值 非常的方便高效 - members = { 'account1' : 13 , 'account2' : 12 } print(members['account1']) # 13
- 字典对象的 - 键是唯一的,如果出现两个相同的键,后面的元素会替换前面的元素。- members = { 'account1' : 13 , 'account1' : 12 } print(members) # {'account1': 12}
- 如果查找的 键 在字典中不存在,则会报错 - members = { 'account1' : 13 , 'account2' : 12 } print(members['account99']) # KeyError: 'account99'
二、 添加、 修改、 删除
var[key] = something括号里面的 key:
- 如果在字典中 不存在,就是 添加元素 的的操作,
- 如果已经 存在 ,就是 重新赋值 操作。 因为字典不允许有相同的 key
1. 添加
members = {}
members['account1'] = 13
members['account2'] = 12结果:
{
    'account1'  : 13 ,
    'account2'  : 12
}2. 修改
{
    'account1'  : 13 ,
    'account2'  : 12
}
members['account2'] = 88结果为:
{
    'account1'  : 13 ,
    'account2'  : 88
}3. 删除
- pop:可以返回删除- key对应的- value对象- members = { 'account1' : 13 , 'account2' : 12 } val = members.pop('account1') print(members) print(val) # 13
- del- members = { 'account1' : 13 , 'account2' : 12 } del members['account1']
三、判断字典是否存在某个 key
- a in var# 检查 a 是否在 var 中存在,存在返回 True,否则返回 False
- a not in var# 检查 a 是否不在 var 中,存在返回 False,否则返回 True- members = { 'account1' : 13 , 'account2' : 12 } if 'account1' in members: print('account1 在字典中存在') # True if 'account88' not in members: print('account88 不在字典中') # True
四、访问字典的所有元素
items() 方法:可以返回一个列表对象,每个元素就是键值组成的元组。
[('account1', 13), ('account2', 12), ('account3', 15)]访问所有元素:
members = {
    'account1'  : 13 ,
    'account2'  : 12 ,
    'account3'  : 15 ,
}
for account, level in members.items():
    print (f'account:{account}, level:{level}')得到所有的 key 和 value 对象
1. keys() 方法
members = {
    'account1'  : 13 ,
    'account2'  : 12 ,
    'account3'  : 15 ,
}
members.keys()		# ['account1', 'account2', 'account3']2. values() 方法
members = {
    'account1'  : 13 ,
    'account2'  : 12 ,
    'account3'  : 15 ,
}
members.values()		# [13, 12, 15]六、 清空字典
1. clear() 方法
members = {
    'account1'  : 13 ,
    'account2'  : 12 ,
    'account3'  : 15 ,
}
members.clear()
print(members)2. 重新赋值
members = {
    'account1'  : 13 ,
    'account2'  : 12 ,
    'account3'  : 15 ,
}
members = {}
print(members)注意
- clear方法指向的是 原字典
- 重新赋值 指向的是 新字典
七、字典合并
update() 方法:可以合并两个字典得到一个新的字典
当有相同的键时,主字典中的 值 会被替换
members = {
    'account1'  : 13 ,
    'account2'  : 12 ,
    'account3'  : 15 ,
}
another =  {
    'account4'  : 13 ,
    'account3'  : 12 ,
}
members.update(another)
print(members)		# {'account1': 13, 'account2': 12, 'account3': 12, 'account4': 13}八、 得到字典元素的个数
len() 方法
members = {
    'account1'  : 13 ,
    'account2'  : 12 ,
    'account3'  : 15 ,
}
print(len(members)) 	# 3九、字典 与 json 之间转换
1、 字段 转换为 json(dumps()方法)
import json
data1 = {"aac003": "tom", "tel": "13959687639", }
print(json.dumps(data1))2. json 转换为 字典(loads()方法)
import json
data1 = '{"aac003": "tom", "tel": "13959687639"}'
print(json.loads(data1))3. 关于 json 中文编码
json.dumps 序列化时对中文默认使用的 ascii 编码
想输出真正的中文需要指定ensure_ascii=False
indent=4 : 表示缩进
>>> import json
>>> print json.dumps('中国')
"\u4e2d\u56fd"
>>> print json.dumps('中国',ensure_ascii=False)
"中国"
>>>