Python中列表和字典的区别

2025年9月3日 | 阅读 4 分钟

列表字典是 Python 中两种被称为数据集合的数据类型。 列表 是一个有序的集合,它使用索引号来存储项目,非常适合管理数据序列。另一方面,字典键值对的形式存储数据,通过唯一的键可以快速灵活地访问。

Python 中的列表是什么?

在 Python 中,列表是一个有序的、可变的元素集合。它允许我们执行各种修改,如添加、删除或更改元素。我们可以在列表中存储任何类型的数据,包括 数字字符串,甚至另一个列表。

Difference between List and Dictionary in Python

列表的特点

  • 有序: 在这一点上,列表维护其元素的特定顺序,索引从 0 开始。
  • 可变: 在可变数据类型中,我们可以编辑或更改元素。
  • 动态: 列表的大小可以动态增长或缩小。
  • 支持多种数据类型: 列表可以包含各种不同数据类型的元素。
  • 列表使用方括号([])进行声明。

示例

立即执行

输出

Initialized list: [14, 'banana', 8.2]
Data Type: <class 'list'>

说明

在下面的示例中,我们使用方括号 [] 创建了一个列表并打印了它。我们可以看到,初始化的列表包含不同的数据类型,如整数、字符串和浮点数。

Python 字典是什么?

字典是 Python 中的一种内置数据类型,用于以“键:值”对的形式存储数据。字典是无序的(从 Python 3.7 开始,它们会保留插入顺序)、可变的、带索引的集合,其中每个键都是唯一的,并映射到一个值。它通常用于存储相关数据,例如与特定实体或对象相关的信息,可以通过键轻松检索值。

Difference between List and Dictionary in Python

Dictionary 的特征

  • 无序: 在这一点上,字典不维护特定的顺序。
  • 可变: 在可变数据类型中,我们可以编辑或更改元素。
  • 键-值对: 字典中的值作为唯一键的集合存储,每个键都有其唯一的值。
  • 动态: 列表的大小可以动态增长或缩小。
  • 支持多种数据类型: 列表可以包含各种不同数据类型的元素。
  • 唯一且不可变的键: 字典键是唯一的且不可变的,例如字符串、整数和浮点数。
  • 字典使用花括号({})进行声明。

示例

立即执行

输出

Initialized dictionary: {'name': 'John', 'age': 23, 'salary': 69000}
Data Type: <class 'dict'>

说明

在此示例中,我们创建了一个字典,其中包含由逗号分隔的多个键:值对,并用花括号 {} 括起来。

列表与字典之间的主要区别

以下是 Python 中列表和字典之间的主要区别

特性列表字典
定义有序的项目集合无序(Python 3.7+ 以来具有插入顺序)的键:值对
语法[] (方括号){} (花括号)
数据访问通过索引(例如,my_list[0])通过键(例如,my_dict['a'])
索引使用数字索引(0、1、2、...)使用键(可以是字符串、数字等)
排序保持项目顺序保持插入顺序(Python 3.7+)
可变性可变(可以更改项目)可变(可以添加、删除或更改键:值对)
重复项允许重复值键必须是唯一的;值可以重复
最适合用于相似项目的集合(如数字列表)相关数据对(如姓名:年龄、产品:价格等)
迭代遍历值遍历键(或使用 .values() 或 .items() 遍历值/项)
内存使用通常小于字典由于键:值对结构,稍微多一些
搜索时间复杂度O(n) 查找速度较慢平均 O(1) 使用哈希表速度更快
嵌套结构体可以包含其他列表可以包含其他字典或混合数据类型

Python 列表和字典区别常见问题解答

1. 列表和字典的基本区别是什么?

列表是按索引访问的有序项目集合,而字典是按键访问的无序键:值对集合。对于存储序列,列表效果很好,而对于数据之间的关系,字典是最佳选择。

2. 如何访问列表和字典中的元素?

  • 在列表中,元素按从 0 开始的数字索引进行访问。
  • 在字典中,元素使用其键进行访问,键通常是字符串或数字。

3. 列表和字典是可变的吗?

是的,列表和字典都是可变的。创建后可以添加、删除或修改内容。

4. 列表和字典会保留顺序吗?

  • 列表顾名思义,会保留元素的顺序。
  • 在 Python 3.7 之前,字典不保留顺序,但从 3.7 开始,它们会根据插入顺序保留键:值对的顺序。

5. 我们可以在列表或字典中使用重复的值吗?

  • 列表中的项目可以重复。
  • 在字典中,键必须是唯一的,但值可以重复。