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,否则返回 Falsea not in var
# 检查 a 是否不在 var 中,存在返回 False,否则返回 Truemembers = { '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)
"中国"
>>>