展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

字典

  • 概述
用键值对的方式存储数据
  • 基础使用
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']}
posted @ 2024-03-26 16:26  DogLeftover  阅读(4)  评论(0编辑  收藏  举报