用键值对的方式存储数据
my_dict = dict() # 创建一个空字典
print(my_dict) # 输出:{}
my_dict = dict(a=1, b=2, c=3) # 创建一个包含键值对的字典
print(my_dict) # 输出:{'a': 1, 'b': 2, 'c': 3}
dic = {"name": "张三", "age": 20, "score": 88}
# 查看变量的类型
print(type(dic))
# 获取字典中的值
n = dic["name"]
print(n)
# 向字典中添加值,如果存在,就是修改
dic["身高"] = 180
print(dic)
# 设置默认值,向字典中添加值,如果存在,值就不起作用
dic.setdefault("体重", 179)
dic.setdefault("体重", 200) # 因为体重已经存在,这次设置无效
print(dic)
# 删除,根据key删除,返回key对应的值
d = dic.pop("体重")
print(d, dic)
# 根据key取值,如果key不存在就会报错KeyError: 'name1'
d = dic["name1"]
print(d)
# 根据key取值,如果不存在就返回None
d = dic.get("name1")
print(d)
# 根据key取值,如果key不存在,就返回指定的值
d = dic.get("name1", "没有这个key")
print(d)
点击查看详情
<class 'dict'>
张三
{'name': '张三', 'age': 20, 'score': 88, '身高': 180}
{'name': '张三', 'age': 20, 'score': 88, '身高': 180, '体重': 179}
179 {'name': '张三', 'age': 20, 'score': 88, '身高': 180}
None
没有这个key
# 遍历字典,取到的是所有的key,通过key获取value
for key in dic:
v = dic[key] # 通过key取出value
print(key, v)
# 将所有的key保存到一个列表中
kes = dic.keys()
print(type(kes))
print(kes)
# 转换成列表
kelst = list(kes)
print(kelst)
# 取出所有的value
vas = dic.values()
print(type(vas))
print(vas)
vlst = list(vas) # 转换成列表
print(vlst)
kvs = dic.items()
print(type(kvs))
print(kvs)
# 用循环遍历key和value
for k, v in dic.items():
print(k, v)
点击查看详情
name 张三
age 20
score 88
身高 180
<class 'dict_keys'>
dict_keys(['name', 'age', 'score', '身高'])
['name', 'age', 'score', '身高']
<class 'dict_values'>
dict_values(['张三', 20, 88, 180])
['张三', 20, 88, 180]
<class 'dict_items'>
dict_items([('name', '张三'), ('age', 20), ('score', 88), ('身高', 180)])
name 张三
age 20
score 88
身高 180
"""字典的嵌套"""
dic = {
"name": "张三",
"age": 30,
"work":{
"job": "经理",
"salay": 6000
},
"emp":[
{"name": "员工1", "age": 18},
{"name": "员工2", "age": 20},
]
}
print(dic)
# 取值,按照存放的数据,对应的取值方式取值
# 取出姓名
name = dic["name"]
print(name)
# 取出工资
w = dic["work"]["salay"]
print(w)
# 取出第一个员工的姓名
c = dic["emp"][0]["name"]
print(c)
# 修改员工2的年龄为25
dic["emp"][1]["age"] = 25
print(dic["emp"])
"""
删除,和list一样,如果要一次性删除多个数据,不能在遍历自己的情况下删除
需要将要删除的kye保存到list列表,然后遍历list再删除
"""
dic = {
"name": '张三',
"n": 0,
"k": 1
}
kylst = ["name", "n"]
for item in kylst:
dic.pop(item)
print(dic)
# 合并两个字典
dic1 = {
'小星': ['1361223423','12334'],
'小亮': ['137239233223','23423']
}
dic2 = {
'小王': ['1361223423','12334'],
'小张': ['137239233223','23423']
}
# 将dic2合并到dic1中
dic1.update(dic2)
print(dic1)
点击查看想起
{'name': '张三', 'age': 30, 'work': {'job': '经理', 'salay': 6000}, 'emp': [{'name': '员工1', 'age': 18}, {'name': '员工2', 'age': 20}]}
张三
6000
员工1
[{'name': '员工1', 'age': 18}, {'name': '员工2', 'age': 25}]
{'k': 1}
{'小星': ['1361223423', '12334'], '小亮': ['137239233223', '23423'], '小王': ['1361223423', '12334'], '小张': ['137239233223', '23423']}