Python中映射类型 (Mapping Type)

简介: 【8月更文挑战第2天】

image.png
映射类型(Mapping Type)是Python中一种非常重要的数据结构,它提供了一种高效的方式来存储和访问数据。在Python中,映射类型的典型代表是字典(dict),它是一种容器类型,能够将键(key)和值(value)以键值对的形式关联起来。这种结构使得我们可以通过键快速地查找对应的值。

字典的基本操作

创建字典

字典可以通过几种不同的方式创建:

  1. 使用字典字面量:通过花括号 {} 和冒号 : 来创建键值对。

    person = {
         
         'name': 'Alice', 'age': 30, 'city': 'New York'}
    
  2. 使用 dict() 构造器:通过关键字参数或者键值对列表来创建字典。

    person = dict(name='Alice', age=30, city='New York')
    # 或者
    person = dict([('name', 'Alice'), ('age', 30), ('city', 'New York')])
    
  3. 使用字典推导式:这是一种简洁的方式,可以用来构建字典。

    squares = {
         
         x: x*x for x in range(1, 6)}
    

访问字典

字典中的元素可以通过键来访问。如果键不存在,则会抛出 KeyError 异常。

# 正确的方式
print(person['name'])  # 输出: Alice

# 错误的方式,因为没有 'email' 这个键
# print(person['email'])

# 安全的方式
email = person.get('email')  # 输出: None
email = person.get('email', 'not-provided@example.com')  # 输出: not-provided@example.com

修改字典

字典是可变的,可以通过键来修改其值。

person['age'] = 31
person['email'] = 'alice@example.com'

删除字典中的项

可以使用 del 关键字来删除字典中的项。

del person['city']

遍历字典

遍历字典时,默认遍历的是键。要同时获取键和值,可以使用 items() 方法。

for key in person:
    print(key, person[key])

for key, value in person.items():
    print(key, value)

特性

  • 有序性:从Python 3.7开始,字典默认保持键的插入顺序。
  • 唯一性:字典中的键必须是唯一的,但是值可以重复。
  • 不可变键:键必须是不可变的数据类型,如数字、字符串或元组。列表等可变类型不能用作键。

示例

下面是一个简单的示例,展示如何创建一个字典并对其进行一些基本的操作:

# 创建字典
student = {
   
   
    'id': 123,
    'name': 'John Doe',
    'grades': [95, 88, 76]
}

# 访问值
print(student['name'])  # 输出: John Doe

# 添加新的键值对
student['email'] = 'john.doe@example.com'

# 修改值
student['grades'].append(92)

# 删除键值对
del student['id']

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

# 输出:
# name: John Doe
# grades: [95, 88, 76, 92]
# email: john.doe@example.com

总结

映射类型(如字典)在Python编程中非常有用,特别是在需要根据特定标识符快速查找信息的情况下。了解如何使用字典对于编写高效的代码至关重要。

目录
相关文章
|
21天前
|
索引 Python 容器
为什么Python中会有集合set类型?
为什么Python中会有集合set类型?
|
21天前
|
Python
Python变量的作用域_参数类型_传递过程内存分析
理解Python中的变量作用域、参数类型和参数传递过程,对于编写高效和健壮的代码至关重要。正确的应用这些概念,有助于避免程序中的错误和内存泄漏。通过实践和经验积累,可以更好地理解Python的内存模型,并编写出更优质的代码。
12 2
|
1月前
|
存储 索引 Python
Python中的str类型
Python中的str类型
|
1月前
|
存储 程序员 C++
Python中的“Short”类型模拟与理解
Python中的“Short”类型模拟与理解
|
1月前
|
SQL 机器学习/深度学习 算法
【python】python指南(五):静态类型注解之List
【python】python指南(五):静态类型注解之List
25 0
【python】python指南(五):静态类型注解之List
|
1月前
|
SQL 算法 Java
【python】python指南(四):typing静态类型注解综述
【python】python指南(四):typing静态类型注解综述
24 0
【python】python指南(四):typing静态类型注解综述
|
1月前
|
机器学习/深度学习 数据采集 算法
【python】python基于微博互动数据的用户类型预测(随机森林与支持向量机的比较分析)(源码+数据集+课程论文)【独一无二】
【python】python基于微博互动数据的用户类型预测(随机森林与支持向量机的比较分析)(源码+数据集+课程论文)【独一无二】
|
20天前
|
Python
|
25天前
|
Python
Python 中的不同类型继承
【8月更文挑战第24天】
38 0
|
26天前
|
程序员 Python
Python 中不同类型的控制流语句
【8月更文挑战第23天】
8 0