Python 中的列表与字典

Manav Narula 2023年1月30日
  1. Python 中基于结构的列表与字典
  2. Python 中基于访问元素的列表与字典
  3. Python 中基于时间的列表与字典
  4. Python 中基于操作的列表与字典
  5. 结论
Python 中的列表与字典

字典和列表有很多相似之处,都以 JSON 格式使用。我们可以使用这两个对象相对轻松地存储和访问元素。

字典和列表都是可变的,这意味着我们可以随着代码的进行更改它们并更新元素。这不是一个通用属性,因为像元组这样的其他对象在 Python 中是不可变的。

本教程将解释 Python 中列表和字典之间的区别。这对于确定在不同情况下使用哪个对象很有用。

Python 中基于结构的列表与字典

第一个区别与元素的存储方式有关 - 列表将元素存储为具有类似数组结构的集合。

这些元素可以是任何类型,并且可以在列表中混合使用不同的元素类型。要创建列表,我们使用方括号 []

但是,字典将元素存储为键值对,每个元素都有一个关联的键。

键可以访问列表中的给定元素。花括号 {} 用于在 Python 中创建字典。

例子:

l = [1, 8, 9, 5, 2]
d = {"a": 1, "b": 8, "c": 9, "d": 5, "e": 2}
print(l, "\n", d)

输出:

[1, 8, 9, 5, 2]
 {'a': 1, 'b': 8, 'c': 9, 'd': 5, 'e': 2}

列表也可以存储重复的元素,而在字典中,每个键都应该是唯一的。

Python 中基于访问元素的列表与字典

元素以给定的顺序存储在列表中,并具有特定的索引。我们使用索引在列表中访问它们。

字典曾经是一个无序的集合。但是,在 Python 3.6 中进行了一些更改,并且在某种程度上将顺序保留在字典中。

要访问元素,我们使用它们关联的键。

请参阅下面的代码。

l = [1, 8, 9, 5, 2]
d = {"a": 1, "b": 8, "c": 9, "d": 5, "e": 2}
print(l[4], d["b"])

输出:

2 8

上面的示例演示了如何在列表和字典中访问元素。

Python 中基于时间的列表与字典

访问它们之间的元素时所需的时间和空间也存在差异。在这种情况下,字典效率更高。

字典将元素存储在哈希表中,键映射到不同的元素。因此,无需任何时空权衡即可访问它们。

遍历整个列表来访问任何元素,因此通常会占用更多的时间和空间。当我们使用大型数据集时,这一点更加明显。

在选择两者之一之前,应仔细考虑时间和空间。

Python 中基于操作的列表与字典

几个常见的操作可以有效地应用于列表。list 类具有不同的功能,例如 max()min()len() 等等。

我们还可以使用 for 循环轻松遍历列表。其他可变对象操作,如 delappend()insert() 等也可用于列表。

主要是,字典用它们的键存储和映射元素,所以它没有很多相关的操作。但是,dict 类是其他类字典对象的子类,例如 UnorderedDictdefaultdict

我们将在下面的代码中使用其中的一些。

from collections import defaultdict

l = [1, 8, 9, 5, 2]
d = defaultdict()
d["a"] = 1
d["c"] = 3
d["e"] = 5
print(max(l), len(l))
print(d)

输出:

9 5
defaultdict(None, {'a': 1, 'c': 3, 'e': 5})

我们在上面的例子中找到了字符串的最大元素和长度。此外,我们使用了 collections 模块中的 defaultdict 类。

结论

当我们希望以特定顺序存储数据并对元素执行不同的类似数组的操作时,列表是有利的。字典对于存储大量数据且易于访问和映射哈希表中的元素非常有用。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python List

相关文章 - Python Dictionary