一. 什么是字典
字典作为Python的一个内置数据结构,和列表一样都是可变序列的,但是它是无序的,以键值对的方式存储数据。
二. 创建字典
创建字典的两种方式,一种使用{ } 另一种使用内置函数dict()
# author: 爪哇斗罗(javaDouLuo)
# date: 2022/7/11 22:51
# 字典的创建
dict01={"A": 1, "B": 2, "C": 3}
# {'A': 1, 'B': 2, 'C': 3}
print(dict01)
dict02=dict(a=1, b=2,name="zs")
# {'a': 1, 'b': 2, 'name': 'zs'}
print(dict02)
三. 字典元素获取
获取字典元素有两种,通过[]或者get()方法获取,两者的区别就是前者当key不存在会抛出异常,后者不会抛出异常,会返回None
# author: 爪哇斗罗(javaDouLuo)
# date: 2022/7/11 22:51
# 字典的创建
dict01 = {"A": 1, "B": 2, "C": 3}
# 字典的元素获取
# 1
print(dict01["A"])
# 3
print(dict01.get("C"))
# KeyError: 'D'
# print(dict01["D"])
四. 字典元素的增删改操作
使用not in与 in判断字典元素中的key是否存在,这一点与列表的用法是相同的。当然也可以对字典中的元素进行增删改的操作。
删除键值对使用del, 增加字典元素与修改字典元素的操作是一样的,就是有key与无key的区别。
# author: 爪哇斗罗(javaDouLuo)
# date: 2022/7/11 22:51
# 字典的创建
dict01 = {"A": 1, "B": 2, "C": 3}
# True
print("A" in dict01)
# False
print("A" not in dict01)
# 删除 B
del dict01["B"]
# {'A': 1, 'C': 3}
print(dict01)
# 增加元素 D
dict01["D"]=4
# {'A': 1, 'C': 3, 'D': 4}
print(dict01)
# 修改D的值
dict01["D"]=40
# {'A': 1, 'C': 3, 'D': 40}
print(dict01)
五. 字典的视图操作
通过keys(),values(),items()可以分别获取字典中的所有键,所有值,所有键值对。
# author: 爪哇斗罗(javaDouLuo)
# date: 2022/7/11 22:51
# 字典的创建
dict01 = {"A": 1, "B": 2, "C": 3}
# 获取所有的key
keys = dict01.keys()
# 类型为 <class 'dict_keys'>
print(type(keys))
# dict_keys(['A', 'B', 'C'])
print(keys)
# 转化为列表 ['A', 'B', 'C']
print(list(keys))
# 获取所有的value
values = dict01.values()
# 类型为 <class 'dict_values'>
print(type(values))
# dict_values([1, 2, 3])
print(values)
# 转化为列表 [1, 2, 3]
print(list(values))
# 获取所有的键值对
items = dict01.items()
# <class 'dict_items'>
print(type(items))
# dict_items([('A', 1), ('B', 2), ('C', 3)])
print(items)
# 元组的数据结构 [('A', 1), ('B', 2), ('C', 3)]
print(list(items))
当然也可以使用以下的方式去遍历字典元素:
# author: 爪哇斗罗(javaDouLuo)
# date: 2022/7/11 22:51
# 字典的创建
dict01 = {"A": 1, "B": 2, "C": 3}
# A 1 1
# B 2 2
# C 3 3
for item in dict01:
print(item,dict01[item],dict01.get(item))
字典的总结如下:
字典中的key不允许重复,value可以
其中key为不可变对象
字典中的元素是无序的
字典根据需要动态伸缩,但字典会浪费较多的内存空间
到此这篇关于Python基础之字典的详细使用教程的文章就介绍到这了,更多相关Python字典内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!