Python数据类型-字典(dict)

1、字典的定义

字典是一种映射类型,用{ }标识,它的元素是键值对,是一个无序的键(key):值(value)的集合,可用于快速查找和检索数据。

#创建字典
d1 = dict([('a',1),('b',2),('c',3)])
print(d1)
d2 = {x: x **2 for x in(2,4,6)}
print(d2)
d3 = dict(A=1,B=2,C=3)
print(d3)

# 创建空字典
my_dict = { }
my_dict = dict()

#结果
{'a': 1, 'b': 2, 'c': 3}
{2: 4, 4: 16, 6: 36}
{'A': 1, 'B': 2, 'C': 3}

:字典的必须为不可变类型,且不能重复,重复添加等同于覆盖原有数据,键必须是唯一的。 

# 定义重复key的字典
dict1 = {"a":99,"b":88,"c":66,"a":77}
dict2= {"a":99,"b":88,"c":66,"b":77}
print(dict1)
print(dict2)

#结果
{'a': 77, 'b': 88, 'c': 66}
{'a': 99, 'b': 77, 'c': 66}

2、字典的常用操作

新增元素:字典[key]=value

更新元素:字典[key]=value(字典的key不可以重复,所以对已存在的key执行上述操作,就是更新value值)

:新增和更新元素的语法一致,如果key不存在即新增,如果key存在,即更新。

删除元素:字典.pop(key)

清空元素:字典.clear()

获取全部的key:字典.keys()

获取全部的value:字典.values()

获取全部的键值对:字典.items()

根据key来获取value:字典.get()(:访问不存的key,该方法会简单的返回None,不会导致错误)

弹出字典中最后一个键值对:字典.popitem()

统计字典内的元素数量:len(字典)(返回键值对的数量)

# 新增元素
my_dict = {"语文":99,"数学":88,"英语":66}
my_dict["生物"] = 89
print(my_dict)
# 更新元素
my_dict["语文"] = 82
print(my_dict)
# 删除元素
value = my_dict.pop("英语")
print(value)
print(my_dict)
# 获取全部的key值
keys = my_dict.keys()
print(keys)
# 获取字典内全部的value值
values = my_dict.values()
print(values)
# 获取字典内全部的键值对(key,value)
key_value = my_dict.items()
print(key_value)
# 根据key来获取value(访问不存的key,该方法会简单的返回None,不会导致错误)
value = my_dict.get("语文")
print(value)
# 弹出字典中最后一个键值对
key_value = my_dict.popitem()
print(key_value)
# 统计字典内元素的数量
print(len(my_dict))
# 清空元素
my_dict.clear()
print(my_dict)

#结果
{'语文': 99, '数学': 88, '英语': 66, '生物': 89}
{'语文': 82, '数学': 88, '英语': 66, '生物': 89}
66
{'语文': 82, '数学': 88, '生物': 89}
dict_keys(['语文', '数学', '生物'])
dict_values([82, 88, 89])
dict_items([('语文', 82), ('数学', 88), ('生物', 89)])
82
('生物', 89)
2
{}

3、字典的嵌套

字典的key和value可以是任意数据类型(key不可以为字典),字典是可以嵌套的。

dict1 = {"小明":{"语文":99,"数学":88,"英语":66}, "小王":{"语文":89,"数学":98,"英语":86}}
score = dict1["小明"]["英语"]
print(score)

#结果
66

4、字典的遍历

字典不可以使用下标索引,而是通过key检索value

可以用字典实现key取出对应value的操作:

语法:字典[key]=对应的value

:如果访问的key不存在时,字典会引发KeyError错误

方式一:通过获取到全部的key/value来完成遍历

方式二:直接对字典进行for循环,每一次循环都是直接得到key。 

my_dict = {"语文":99,"数学":88,"英语":66}
for key in my_dict.keys():
    print(key)

for value in my_dict.values():
    print(value)

for i in my_dict.items():
    print(i)  # 返回元组

my_dict = {"语文":99,"数学":88,"英语":66}
for key in my_dict:
    print(f"{key}:{my_dict[key]}")

my_dict = {"语文":99,"数学":88,"英语":66}
for key,value in my_dict.items():
    print(f"{key}:{value}")

#结果
语文
数学
英语
99
88
66
('语文', 99)
('数学', 88)
('英语', 66)
语文:99
数学:88
英语:66
语文:99
数学:88
英语:66

5、字典的特点

(1)可以容纳多个数据

(2)可以容纳不同类型的数据

(3)每一份数据是key-value键值对

(4)可以通过key获取到value,key不可以重复(重复会覆盖)

(5)不支持下标索引

(6)可以修改(增加或删除元素)

(7)支持for循环,不支持while循环

学无止境!点赞关注支持一下呗~

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值