目录
一、字典概述
字典就是花括号所包裹的部分(部分包含:键值对[冒号左边(键)和右边(值)都有内容])
字典(dictionary)是包含若干“键:值”元素的无序可变序列,字典中的每个元素包含用冒号分隔开的“键”和“值”两部分, 表示一种映射或对应关系,也称关联数组。定义字典时,每个元素的“键”和“值”之间用冒号分隔,不同元素之间用逗号分隔, 所有的元素放在一对大括号“{}”中。 字典中元素的“键”可以是Python中任意不可变数据,例如整数、实数、复数、字符串、元组等类型等可哈希数据,但不能 使用列表、集合、字典或其他可变类型作为字典的“键”。字典中的“键”不允许重复,“值”是可以重复的。
二、创建字典
2.1 使用{}来创建
Dict1 = {}
print(Dict1)
2.2 使用函数来创建
Dict2 = dict()
print(Dict2)
三、字典的增删改查
3.1 增
3.1.1 字典有初值 直接添加键值对
# 字典有初值 直接添加键值对
data = {
'姓名': 'lcb',
'性别': '男',
'年龄': 21,
'学历': '本科'
}
data['电话'] = '123456789'
print(data)
# {'姓名': 'lcb', '性别': '男', '年龄': 21, '学历': '本科', '电话': '123456789'}
3.1.2 字典无初值 先创建空字典
# 字典无初值 先创建空字典
data = {}
data['姓名'] = 'lcb'
data['年龄'] = '23'
data['性别'] = '男生'
data['学历'] = '研究生'
print(data)
# {'姓名': 'lcb', '年龄': '23', '性别': '男生', '学历': '研究生'}
3.2 删
3.2.1 删除指定键值对
语法:del 字典名[键名]
data = {
'姓名': 'lcb',
'性别': '男',
'年龄': 21,
'学历': '本科'
}
del data['姓名']
print(data)
# {'性别': '男', '年龄': 21, '学历': '本科'}
3.2.2 删除所有键值对
语法:字典名.clear
data = {
'姓名': 'lcb',
'性别': '男',
'年龄': 21,
'学历': '本科'
}
data.clear()
print(data)
# {}
3.2.3 删除字典
语法:del 字典名
data = {
'姓名': 'lcb',
'性别': '男',
'年龄': 21,
'学历': '本科'
}
del data
print(data)
# NameError: name 'data' is not defined
3.3 改
通过键直接修改值
data = {
'姓名': 'lcb',
'性别': '男',
'年龄': 21,
'学历': '本科'
}
data['性别'] = '女'
data['年龄'] = 20
print(data)
# {'姓名': 'lcb', '性别': '女', '年龄': 20, '学历': '本科'}
3.4 查
语法:字典名[键名]
data = {
'姓名': 'lcb',
'性别': '男',
'年龄': 21,
'学历': '本科'
}
print(data['姓名'])
# lcb
四、字典的操作与方法
4.1 计算字典元素个数(len(dict))
data = {'姓名': 'lcb', '年龄': '23', '性别': '男生', '学历': '研究生'}
print(len(data))
# 4
4.2 以字符串形式输出字典(str())
data = {'姓名': 'lcb', '年龄': '23', '性别': '男生', '学历': '研究生'}
print(str(data))
4.3 使用copy()方法进行浅复制
语法:dict.copy()
data1 = {'姓名': 'lcb', '年龄': '23', '性别': '男生', '学历': '研究生'}
data2 = data1.copy()
print(data2)
# {'姓名': 'lcb', '年龄': '23', '性别': '男生', '学历': '研究生'}
4.4 获取字典全部的键
首先通过dict.keys()将字典的键提取为dict_keys(['姓名', '性别', '年龄', '学历'])
data = {
'姓名': 'lcb',
'性别': '男',
'年龄': 21,
'学历': '本科'
}
print(data.keys())
# dict_keys(['姓名', '性别', '年龄', '学历'])
然后可以通过list()将其强转为列表。也可以强转为其他的数据类型。
data = {
'姓名': 'lcb',
'性别': '男',
'年龄': 21,
'学历': '本科'
}
print(list(data.keys()))
# ['姓名', '性别', '年龄', '学历']
4.5 获取字典全部的值
使用list()强转,将获取的结果放入一个列表中
data = {
'姓名': 'lcb',
'性别': '男',
'年龄': 21,
'学历': '本科'
}
print(list(data.values()))
# ['lcb', '男', 21, '本科']
4.6 遍历字典键值对
data = {
'姓名': 'lcb',
'性别': '男',
'年龄': 21,
'学历': '本科'
}
list = list(data.items())
for i in list:
print(i)
# ('姓名', 'lcb')
# ('性别', '男')
# ('年龄', 21)
# ('学历', '本科')
4.7 字典的jsonpath取值
jsonpath取值的步骤:
1.安装jsonpath库:pip install jsonpath
2.导包: import jsonpath
3.使用: jsonpath.jsonpath(参数1:字典的文本, 参数2:'$.. + 键名')
4.结果: jsonpath的结果是一个列表[]
import jsonpath
data = {
'姓名': '1',
'性别': '男',
'年龄': 21,
'学历': '本科'
}
list = jsonpath.jsonpath(data, '$..姓名')
print(list)
# ['lcb']
cities={
'北京':{
'朝阳':['国贸','CBD','天阶','我爱我家','链接地产'],
'海淀':['圆明园','苏州街','中关村','北京大学'],
'昌平':['沙河','南口','小汤山',],
'怀柔':['桃花','梅花','大山'],
'密云':['密云A','密云B','密云C']
},
'河北':{
'石家庄':['石家庄A','石家庄B','石家庄C','石家庄D','石家庄E'],
'张家口':['张家口A','张家口B','张家口C'],
'承德':['承德A','承德B','承德C','承德D']
}
}
for i in cities['北京']:
print(i)
# 朝阳
# 海淀
# 昌平
# 怀柔
# 密云
for i in cities['北京']['海淀']:
print(i)
# 圆明园
# 苏州街
# 中关村
# 北京大学
今天就浅浅学到这里叭!