字典(dict)—数据容器

一、字典的定义

我们使用汉字字典的时候,先找到这个字,翻到对应的页码,就可以看到关于这个字的解释。

Python中的字典和生活中的字典十分类似:

通过任意键信息查找一组数据中的值信息的过程叫映射,python中通过字典实现映射。

字典是包含0个或多个键值对的集合,无长度限制。(每一个元素是一个键值对)

字典通过大括号{}建立,Key:Value称为1个键值对,Key和Value可以是任意类型的数据(Key不可为字典,且不可重复),键和值通过冒号连接,不同键值对之间通过逗号隔开。

#定义字典字面量
{'中国':'北京','美国':'纽约','英国':'伦敦'}
#定义字典变量
my_dict1={'中国':'北京','美国':'纽约','英国':'伦敦'}
#定义空字典
my_dict2={}      #方式1
my_dict3=dict()  #方式2

print(my_dict1)
print(type(my_dict1))
print(my_dict2)
print(type(my_dict2))
print(my_dict3)
print(type(my_dict3))

输出:

{'中国': '北京', '美国': '纽约', '英国': '伦敦'}
<class 'dict'>
{}
<class 'dict'>
{}
<class 'dict'>

二、字典数据的访问

字典同集合一样,不能使用下标索引,但是字典可以通过Key值来取得对应的Value,语法:字典[key],如下列代码所示:

#可以通过名字获取其爱吃的食物信息
dict1={'加菲猫':'千层面','欧迪':'披萨','乔恩':'三明治'}
print(dict1['加菲猫'])
print(dict1['欧迪'])
print(dict1['乔恩'])

输出:

千层面
披萨
三明治

如果有重复的Key值,会覆盖原有数据,如下所示:

#可以通过名字获取其爱吃的食物信息
dict2={'加菲猫':'千层面','欧迪':'披萨','乔恩':'三明治','加菲猫':'蛋糕'}
print(dict2['加菲猫'])
print(dict2['欧迪'])
print(dict2['乔恩'])

输出:

蛋糕
披萨
三明治

如果加菲猫、欧迪、乔恩三餐食物不同呢?

可以通过字典嵌套:

dict1={'加菲猫':{
    '早餐':'三明治',
    '午餐':'披萨',
    '晚餐':'千层面'
},'欧迪':{
    '早餐':'三明治',
    '午餐':'意大利面',
    '晚餐':'蛋糕'
},'乔恩':{
    '早餐':'牛奶麦片',
    '午餐':'披萨',
    '晚餐':'苹果派'
}}
print(dict1['加菲猫']['早餐'])
print(dict1['欧迪']['午餐'])
print(dict1['乔恩']['晚餐'])

输出:

三明治
意大利面
苹果派

三、字典的方法

3.1增加元素

语法:字典[Key] = Value

功能:新增元素

具体应用:

dict3={'静夜思':'李白','江雪':'柳宗元','征人怨':'柳中庸','夜雨寄北':'李商隐'}
print(dict3)
dict3['终南别业']='王维'
print(dict3)

输出:

{'静夜思': '李白', '江雪': '柳宗元', '征人怨': '柳中庸', '夜雨寄北': '李商隐'}
{'静夜思': '李白', '江雪': '柳宗元', '征人怨': '柳中庸', '夜雨寄北': '李商隐', '终南别业': '王维'}

3.2更改元素

语法:字典[Key] = Value

功能:修改字典,更新元素

具体应用:

#加菲猫爱吃的食物变成蛋糕
dict2={'加菲猫':'千层面','欧迪':'披萨','乔恩':'三明治'}
print(dict2)
dict2['加菲猫']='蛋糕'
print(dict2)

 输出:

{'加菲猫': '千层面', '欧迪': '披萨', '乔恩': '三明治'}
{'加菲猫': '蛋糕', '欧迪': '披萨', '乔恩': '三明治'}

注意:字典Key不可以重复,所以对已存在的Key执行上述操作,就是更新Value值。

3.3删除元素

语法:字典.pop(Key)

功能:删除指定的Key及其Value

具体应用:

dict3={'静夜思':'李白','江雪':'柳宗元','征人怨':'柳中庸','夜雨寄北':'李商隐'}
print(dict3)
dict3.pop('江雪')
print(dict3)

输出:

{'静夜思': '李白', '江雪': '柳宗元', '征人怨': '柳中庸', '夜雨寄北': '李商隐'}
{'静夜思': '李白', '征人怨': '柳中庸', '夜雨寄北': '李商隐'}

3.4清空元素

语法:字典.clear()

功能:字典内的元素被清空,变为空字典

具体应用:

dict3={'静夜思':'李白','江雪':'柳宗元','征人怨':'柳中庸','夜雨寄北':'李商隐'}
print(dict3)
dict3.clear()
print(dict3)

输出:

{'静夜思': '李白', '江雪': '柳宗元', '征人怨': '柳中庸', '夜雨寄北': '李商隐'}
{}

3.5获取全部key

语法:字典.keys()

功能:得到字典中的全部Key

具体应用:

dict2={'加菲猫':'千层面','欧迪':'披萨','乔恩':'三明治'}
keys=dict2.keys()
print(keys)

输出:

dict_keys(['加菲猫', '欧迪', '乔恩'])

3.6统计字典内的元素(键值对)数量

语法:len(字典)   

功能:得到字典内元素(键值对)的数量

具体应用:

dict2={'加菲猫':'千层面','欧迪':'披萨','乔恩':'三明治'}
num=len(dict2)
print(f"字典内元素数量为:{num}")

输出:

字典内元素数量为:3

四、字典的遍历

字典不支持下标索引,所以同集合一样,不可以用while循环遍历,但是可以运用3.5获取全部key功能进行for循环遍历。

dict3={'静夜思':'李白','江雪':'柳宗元','征人怨':'柳中庸','夜雨寄北':'李商隐'}
#方式1
for key in dict3.keys():
    print(f"作品为{key},作者为{dict3[key]}")
#方式2
keys=dict3.keys()
for key in keys:
    print(f"作品为{key},作者为{dict3[key]}")

方式1和方式2的输出相同:

作品为静夜思,作者为李白
作品为江雪,作者为柳宗元
作品为征人怨,作者为柳中庸
作品为夜雨寄北,作者为李商隐

五、字典的特点

  1. 可以容纳多个不同类型的数据
  2. 每一份数据是Key:Value键值对
  3. 可以通过Key获取到Value,Key不可重复(重复会覆盖)
  4. 不支持下标索引 (支持for循环,不支持while循环)
  5. 可以修改(可以增加、删除、更新元素)
  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值