Python基础11-字典

11 篇文章 1 订阅
11 篇文章 0 订阅

目录

一、字典概述

二、创建字典

2.1 使用{}来创建

2.2 使用函数来创建

三、字典的增删改查

3.1 增

3.1.1 字典有初值 直接添加键值对

3.1.2 字典无初值 先创建空字典

3.2 删

3.2.1 删除指定键值对

3.2.2 删除所有键值对

3.2.3 删除字典

3.3 改

3.4 查

四、字典的操作与方法

4.1 计算字典元素个数(len(dict))

4.2 以字符串形式输出字典(str())

4.3 使用copy()方法进行浅复制

4.4 获取字典全部的键

4.5 获取字典全部的值

4.6 遍历字典键值对

4.7 字典的jsonpath取值


一、字典概述

        字典就是花括号所包裹的部分(部分包含:键值对[冒号左边(键)和右边(值)都有内容])

字典(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)
# 圆明园
# 苏州街
# 中关村
# 北京大学

  今天就浅浅学到这里叭!

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

打怪升级酱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值