python基础:字典 python中字典的基本操作

liftword4个月前 (12-18)技术文章51

ps:文中代码块可以长按复制,左滑拖动查看全部

在 Python 中,字典(dict)是非常重要的数据结构,它用于存储以“键-值”对形式组织的数据。字典是无序的、可变的、并且键是唯一的。字典非常适合用于查找、插入和删除元素,它广泛应用于各种场景,如缓存、数据库记录、配置信息等。

本文将从基本概念开始,逐步讲解 Python 字典的常见操作、方法、性能、以及一些高级用法。


1. 字典的基本概念

字典是一个由键-值对组成的无序集合,其中每个键(key)都对应一个值(value)。字典中的键是唯一的,但值可以重复。字典的键必须是不可变类型(如字符串、数字、元组等),而值可以是任何数据类型。

字典的创建:

# 创建字典的几种方式
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}

上述代码创建了一个字典 person,它包含了3个键值对:name、age 和 city。


2. 访问字典的元素

字典中的值是通过键来访问的。你可以使用 [] 来访问字典中指定键对应的值。

# 访问字典中的元素
print(person['name'])  # 输出 'Alice'
print(person['age'])   # 输出 25

如果你访问的键不存在,Python 会抛出 KeyError 异常:

# 键不存在时会抛出 KeyError
print(person['gender'])  # 会抛出 KeyError: 'gender'

为避免这种错误,可以使用 get() 方法,它在键不存在时返回 None(或者返回你指定的默认值):

print(person.get('gender'))  # 输出 None
print(person.get('gender', 'Unknown'))  # 输出 'Unknown'

3. 修改字典中的元素

字典是可变的,因此可以直接修改其中的值。通过指定键来更新对应的值:

# 修改字典中的元素
person['age'] = 30  # 修改 age 为 30
print(person)  # {'name': 'Alice', 'age': 30, 'city': 'New York'}

如果键不存在,则会添加新的键值对:

# 添加新键值对
person['gender'] = 'Female'
print(person)  # {'name': 'Alice', 'age': 30, 'city': 'New York', 'gender': 'Female'}

4. 删除字典中的元素

可以使用 del 语句或 pop() 方法来删除字典中的元素。

  • del:用于删除字典中指定键的元素。
# 删除字典中的元素
del person['city']  # 删除键为 'city' 的元素
print(person)  # {'name': 'Alice', 'age': 30, 'gender': 'Female'}
  • pop():通过键删除字典中的元素,并返回被删除的值。
# 使用 pop 删除元素并返回其值
age = person.pop('age')  # 删除 'age' 键,并返回对应的值
print(age)  # 输出 30
print(person)  # {'name': 'Alice', 'gender': 'Female'}
  • popitem():删除并返回字典中的一个键值对(通常是最后插入的键值对,Python 3.7+)。
# 使用 popitem 删除并返回一个键值对
item = person.popitem()
print(item)  # ('gender', 'Female')
print(person)  # {'name': 'Alice'}
  • clear():清空字典中的所有键值对。
# 清空字典
person.clear()
print(person)  # 输出 {}

5. 遍历字典

你可以使用多种方式来遍历字典:

  • 遍历键(keys())
# 遍历字典中的键
for key in person.keys():
    print(key)
  • 遍历值(values())
# 遍历字典中的值
for value in person.values():
    print(value)
  • 遍历键值对(items())
# 遍历字典中的键值对
for key, value in person.items():
    print(f"{key}: {value}")

6. 字典的常用方法

Python 字典提供了一些常用的方法来进行操作:

  • update():用另一个字典或键值对更新当前字典。如果键已经存在,值会被更新;如果键不存在,会新增键值对。
# 更新字典
person.update({'age': 35, 'city': 'Boston'})
print(person)  # {'name': 'Alice', 'age': 35, 'gender': 'Female', 'city': 'Boston'}
  • setdefault():返回键的值,如果键不存在,则插入键,并赋予默认值。
# 如果 'gender' 不存在,则插入默认值 'Unknown'
gender = person.setdefault('gender', 'Unknown')
print(gender)  # 输出 'Female'
print(person)  # {'name': 'Alice', 'age': 35, 'gender': 'Female', 'city': 'Boston'}
  • keys()values()items():分别返回字典中所有键、值和键值对的视图对象(view)。
# 获取键、值和键值对的视图
print(person.keys())  # dict_keys(['name', 'age', 'gender', 'city'])
print(person.values())  # dict_values(['Alice', 35, 'Female', 'Boston'])
print(person.items())  # dict_items([('name', 'Alice'), ('age', 35), ('gender', 'Female'), ('city', 'Boston')])

7. 字典的性能

字典在 Python 中是通过哈希表实现的,因此它提供了快速的查找、插入和删除操作。大多数情况下,字典的操作时间复杂度为 O(1)

  • 查找(get())插入(update())删除(del、pop()) 都是常数时间复杂度 O(1),这使得字典成为处理大量数据时非常高效的数据结构。

8. 字典的高级应用

  • 嵌套字典:字典可以作为值存储其他字典,形成嵌套结构。
students = {
    'Alice': {'age': 25, 'major': 'Computer Science'},
    'Bob': {'age': 22, 'major': 'Mathematics'}
}
print(students['Alice']['major'])  # 输出 'Computer Science'
  • 字典推导式:类似于列表推导式,可以用来创建新的字典。
# 字典推导式
squares = {x: x**2 for x in range(5)}
print(squares)  # 输出 {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

9. 总结

Python 中的字典(dict)是一种非常灵活且高效的数据结构。它提供了通过键访问、修改、删除值的功能,并且支持多种方法和操作来满足开发中的需求。字典的无序性和键值对结构使得它适用于很多场景,例如配置管理、存储 JSON 数据、缓存实现等。

掌握字典的基本操作、常用方法和高级应用,有助于你在 Python 编程中更加高效地处理数据。

相关文章

一文掌握在Python列表中添加元素的多种方法

序列是Python中最基本的数据结构。Python有6种序列类型,但最常见的是列表和元组。列表是最常用的Python数据类型,是用方括号括起来的可变元素序列。列表可以包含任何数据类型,例如整数、浮点数...

合并 Python 词典的 4 种方法! 合并两个python字典

Merging 字典是 Python 编程中的一项常见任务,在整合数据或聚合配置时通常需要。Python 提供了多种方法来实现这一目标,每种方法都适用于不同的场景。1. 字典推导式details =...

Python 动手练:字典 python的字典怎么用

字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值对用冒号 : 分隔( key:value ),每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中。键一般是唯一的,如果重复最后...

RealPython 基础教程:Python 字典用法详解

在连续编写了5篇和 list 相关的文章之后,我们继续《RealPython 基础教程》这个系列。今天,我们要学习的数据结构是字典(dict)。dict 是一个包含若干对象的集合。它和 list 有以...

掌握Python字典的12个例子 python字典用法大全

数据结构是任何编程语言的关键部分。为了创建健壮且性能良好的产品,必须非常了解数据结构。在这篇文章中,我们将研究Python编程语言的一个重要数据结构,即字典。字典是键值对的无序集合。每个项都有一个键和...