提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
字典是Python中的一种数据结构,用于存储键值对的集合。本文将从声明、遍历、常用操作等方面进行表述
提示:以下是本篇文章正文内容,下面案例可供参考
一、字典是什么?
字典是Python中的一种数据结构,用于存储键值对的集合。字典使用花括号{}来表示,键和值之间使用冒号:分隔,每个键值对之间使用逗号分隔。
字典中的键必须是唯一的,而值则可以是任意类型的对象,包括数字、字符串、列表等。字典是可变的,可以通过键来添加、修改或删除对应的值。
字典提供了一种快速查找和访问数据的方式,可以通过键来获取对应的值,而不需要遍历整个字典。字典也支持一些常用的操作,如计算字典的长度、检查某个键是否存在于字典中等。
字典在处理一些需要存储和管理大量数据的情况下非常有用,可以根据键快速获取对应的值,提高程序的效率。同时,字典还可以用于存储一些相关联的信息,使得数据之间的关系更加清晰和易于理解
二、字典的声明
定义字典:使用{}或者dict
-
字典的格式是键(key)值(value)对
-
键与值用冒号隔开,多个键值对之间用,隔开
-
值可以是任意数据类型
-
键:不可变类型,普遍的键均是字符串
# 数据结构:字典
# 定义字典:使用{}或者dict
d0 = {}
d1 = dict()
print(type(d0), type(d1)) # <class 'dict'> <class 'dict'>
# 字典的格式是键(key)值(value)对
# 键与值用冒号隔开,多个键值对之间用,隔开
d2 = {
"name": "守望tk",
"age": 18,
"address": "郑州"
}
print(d2, type(d2))
# {'name': '守望tk', 'age': 18, 'address': '郑州'} <class 'dict'>
# 值可以是任意数据类型
d3 = {
"k1": "value1",
"k2": 100,
"k3": 3.14,
"k4": False,
"k5": None,
"k6": [1, 2, 3],
"k7": (100,),
"k8": {
"k9": {
},
"k10": [
{
"Id": 100,
"name": "Coco奶茶"
},
{
"Id": 101,
"name": "沪上阿姨"
},
{
"Id": 102,
"name": "喜茶"
}
]
}
}
print(type(d3)) # <class 'dict'>
# 键:不可变类型,普遍的键均是字符串
# 5种数据类型均是不可变类型
d4 = {
"name": "守望tk",
100: "整数型",
3.14: "这是PI",
True: "布尔值",
None: "空值",
# []: "列表,可变类型会报错"
# unhashable type: 'list'
# 元组是不可变类型,可以作为字典的键
(): "元组",
# {}:"字典是可变类型,不可以作为键",
# 键不可以重复
True: "我会覆盖之前的True对应得值",
"hi": "守望tk"
}
print(type(d4)) # <class 'dict'>
三、字典的基础知识
1.字典是可变类型
d0 = {}
print(d0, id(d0)) # {} 2076934162752
d0["name"] = "守望tk"
print(d0, id(d0)) # {'name': '守望tk'} 2076934162752
2.字典的获取和修改
-
获取:字典名[键名]
-
修改:字典名[键名] = 值,如果键已经存在,会替换原始值
d0["name"] = "守望tk"
# 设置键已经存在,会替换原始值
d0 = {
"name": "wl",
"age": 18
}
print(d0) # {'name': 'wl', 'age': 18}
d0["name"] = "守望tk"
print(d0, ) # {'name': '守望tk', 'age': 18}
# 获取键对应的值
print(d0["name"], d0["age"]) # 守望tk 18
3.字典的遍历
常用的方法共有3种:
- 遍历所有的键 :for key in d.keys()
- 遍历所有的值:for value in d.values()
- 遍历所有的键值对:for k,v in d.items()
还有一种遍历方法:遍历字典获取所有key :for key in d:
但这种方法与第一种重合而且不建议使用常被忽略,此处只做补充
代码实例如下:
d1 = {
"name": "守望tk",
"age": 18,
"address": "郑州"
}
# 遍历
# 1.遍历字典获取key
# 不建议使用
for key in d1:
print(key, d1[key])
# 2.遍历字典所有键
for key in d1.keys():
print(key, d1[key])
# 3.遍历字典的所有值
for value in d1.values():
print(value)
# 4.遍历字典所有的键值对
for item in d1.items():
print(item, type(item))
# ('name', '守望tk') < class 'tuple'>
# ('age', 18) < class 'tuple'>
# ('address', '郑州') < class 'tuple'>
# 常用方式
for key, value in d1.items():
print(key, value)
# name 守望tk
# age 18
# address 郑州
四、字典的常用操作
字典中的常用操作有以下几种:
get
根据键取值
取不到返回None
取不到也可以指定默认值
字典[键]
如果取不到 会报错
方法 | 含义 |
---|---|
len | 获取字典键值对的个数 |
in | 判定是否有这个键 |
– | – |
keys() | 遍历所有的键 |
values() | 遍历所有的值 |
items() | 遍历所有的键值对 |
– | – |
value = pop(key) | 根据键删除键值对,返回值 |
key, value = popitem() | 删除最后一个键值对,并且返回元组 |
clear() | 清空 |
– | – |
update({ }) | 将字典中所有键值对合并到原始字典:如果键已经存在,则替换 |
dict.fromkeys(keys, value) | 创建一个新字典:所有的值的是value,键来源于keys列表 |
setdefault(key, value) | 如果键不存在,则添加,返回新值;键已经存在,不添加,返回原始数据 |
– | – |
get | 根据键取值:取不到,返回None / 指定默认值;字典[键]:如果取不到 会报错 |
代码实例如下:
# 常用操作
d2 = {
"name": "守望tk",
"age": 18,
"address": "郑州"
}
# len 获取字典键值对的个数
print(len(d2)) # 3
# 判断是否有这个键
print("name" in d2, "sex" in d2) # True False
# 所有的键
print(d2.keys()) # dict_keys(['name', 'age', 'address'])
# 所有的值
print(d2.values()) # dict_values(['守望tk', 18, '郑州'])
# 所有的键值对
print(d2.items()) # dict_items([('name', '守望tk'), ('age', 18), ('address', '郑州')])
# 根据键删除键值对,返回值
# r = d2.pop()
# print(r, d2)
# pop expected at least 1 argument, got 0
r = d2.pop("name")
print(r, d2, "name" in d2)
# 删除最后一个写入的键值对,并且返回元组
r = d2.popitem()
print(r, d2) # ('address', '郑州') {'age': 18}
# 清空
d2.clear()
print(d2) # {}
d3 = {
"name": "守望tk",
"age": 18,
"address": "郑州"
}
# 如果已经存在该键,不添加返回原始值
# 如果不存在则添加
r = d3.setdefault("age", 25)
print(d3, r) # {'name': '守望tk', 'age': 18, 'address': '郑州'} 18
r = d3.setdefault("sex", "女")
print(d3, r) # {'name': '守望tk', 'age': 18, 'address': '郑州', 'sex': '女'} 女
# 将新字典中所有键值对合并到原有字典,如果键已经存在则替换
d3.update({
"phone": 123456,
"age": 20
})
print(d3)
# {'name': '守望tk', 'age': 20, 'address': '郑州', 'sex': '女', 'phone': 123456}
# 初始化字典 ==> 创建一个新字典
d4 = dict.fromkeys(["k1", "k2", "k3"], 100)
print(d4) # {'k1': 100, 'k2': 100, 'k3': 100}
d4 = {
"name": "守望tk",
"age": 18,
"address": "郑州"
}
# 根据建取值
# 取不到返回None/默认值
r = d4.get("sex")
print(r) # None
r = d4.get("sex", 100)
print(r) # 100
# 取不到返回None
print(d4.get("name1", "ll")) # ll
# 取不到报错
print(d4["name1"]) # KeyError: 'name1'
总结
以上就是今天要讲的内容,本文简单介绍了Python中字典的使用,希望小仙女或者男神们可以从中收获一些东西!!谢谢观看Thanks♪(・ω・)ノ