Python字典(dict)详解:从创建到操作全掌握

前言

  • 字典是可变容器,可存储任意类型对象

  • 字典以键(key)-值(value)对的形式进行映射,键值对用冒号分割,对之间用逗号分割

  • d = {key1 : value1, key2 : value2, key3 : value3 }

  • 字典的数据是无序的

  • 字典的键只能用不可变类型,且不能重复

  • 字典的数据用键进行索引,不能用整数进行索引

 字典(dict)是Python中非常重要的一种数据结构,它以键值对的形式存储数据,具有极高的查找效率。本文将带大家全面了解字典的创建、操作及特性,适合Python初学者系统学习。

一、字典的创建

字典使用花括号{}创建,键值对之间用冒号:分隔:

# 创建空字典
empty_dict = {}


# 创建有初始值的字典
student = {
    "name": "张三",
    "age": 20,
    "major": "计算机科学"
}
dict = {'a': [1, 2, 3]}
dict = {'b': {"bb": 222}}
dict = {(1, 2, 3):'壹贰伍'}

# 字典的键只能用不可变类型,且不能重复
# d = {'a': 1, 'b': 2, 'a': 3}  # 字典的键不能重复 d = {'a': 3, 'b': 2} 
# d = {[1, 2, 3]: 'a'}          # TypeError: unhashable type: 'list'

# 使用dict()构造函数
d = dict()   # d = {}
d = dict([("name", "小王"), ("age", 35)])  # {'name': '小王', 'age': 35}
d = dict(a=1, b=2, c=3)    # {'a':1, 'b':2, 'c':3}
d = dict([1, 2, 3, 4])  # 错
teacher = dict(name="李老师", subject="数学")

注意

  • 字典是可变类型,但字典的键必须是不可变类型(如字符串、数字、元组)

  • 值可以是任意Python对象

二、字典的基本操作

2.1 增加或修改元素

# 添加新键值对
student["gender"] = "男"

# 修改现有键的值
student["age"] = 21

 2.2 访问值

# 通过键访问
print(student["name"])  # 输出: 张三

# 使用get()方法(避免KeyError)
print(student.get("height", "170cm"))  

# 如果键不存在,会报错
mydic = {'Name': '小红', 'Age': 7, 'Class': 'First'} 
print (mydic['Alice']) # KeyError: 'Alice'

 2.3 成员检查(in/not in)

if "name" in student:
    print("姓名存在")

if "height" not in student:
    print("身高信息不存在")

in用于判断一个键是否存在于字典中,存在返回True, 否则返回False(not in 类似)

  • 示例

d = dict(a=1, b=2)		# d = {'a': 1, 'b': 2}
print('a' in d)			# True	
print(1 in d)			# False
print('hello' not in d)	# True

 2.4 删除元素

# del语句删除
del student["major"]

# pop()方法删除并返回值
age = student.pop("age")

# 清空字典
student.clear()

三、字典的特性

  1. 无序性:Python3.7+中字典会保持插入顺序,但不应依赖顺序进行编程

  2. 键唯一性:每个键只能出现一次,后赋值的会覆盖前面的,假如前面的name是小红,后面又出现了name是小明,print(dict[name])是小明。

  3. 可变性:字典内容可以动态修改

  4. 高效查找:基于哈希表实现,查找时间复杂度为O(1)

四、常用字典API

方法 描述
keys() 返回所有键的视图
values() 返回所有值的视图
items() 返回所有键值对的视图
update() 合并另一个字典
copy() 返回字典的浅拷贝
setdefault() 安全地设置默认值

 操作字典的方法:

序号 函数及描述
1 dict.clear()删除字典内所有元素
2 dict.copy()返回一个字典的浅复制
4 dict.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值
5 key in dict如果键在字典dict里返回true,否则返回false
6 dict.items()以列表返回一个视图对象
7 dict.keys()返回一个视图对象
9 dict.update(dict2)把字典dict2的键/值对更新到dict里
10 dict.values()返回一个视图对象
11 pop(key,default)删除字典 key(键)所对应的值,返回被删除的值。

操作字典的函数:

序号 函数 描述
1 len(dict) 计算字典元素个数,即键的总数。
2 str(dict) 输出字典,可以打印的字符串表示。
3 type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。

使用示例

# 遍历字典
for key, value in student.items():
    print(f"{key}: {value}")

# 合并字典
extra_info = {"hobby": "篮球", "height": "175cm"}
student.update(extra_info)

 官方文档:https://docs.python.org/zh-cn/3.13/library/stdtypes.html#mapping-types-dict

五、实际应用场景

  1. 数据存储:存储结构化数据,如配置信息、用户信息

  2. 快速查找:需要频繁根据键查找值的场景

  3. 数据统计:统计词频等需要计数的场景

  4. 函数参数:**kwargs接收可变数量的关键字参数

总结

字典是Python中最灵活、最常用的数据结构之一。掌握字典的使用可以大大提高编程效率。记住字典的核心特点是键值对快速查找,在实际应用中多思考如何利用这些特性解决问题。

练习建议

  1. 尝试用字典实现一个简单的电话簿

  2. 统计一篇文章中每个单词出现的次数

  3. 比较字典与列表在不同操作下的性能差异

希望本文能帮助你掌握Python字典的使用!如果有任何问题,欢迎在评论区留言讨论。

 

 

 

 

 

 

 

你可能感兴趣的:(python基础知识点,python,开发语言)