【问题标题】:Dictionary versus Nested list/array?字典与嵌套列表/数组?
【发布时间】:2022-08-16 10:53:48
【问题描述】:

在 Python 中,字典用于键/值对。然而,嵌套列表或数组可以对大列表中的二值列表执行相同的操作,例如[[1, 2], [3, 4]]

数组有更多用途,实际上速度更快,但字典更简单。使用字典与数组的优缺点是什么?

  • 如果您需要按键进行查找,那么字典始终是最佳选择。如果您只需要存储梨而不进行查找,那么没关系。
  • @Ender 但是理由是一样的。这个问题没有特定于 Python 的内容。
  • 这些信息同样有用,但很公平——我删除了评论以避免任何混淆。
  • 您是在谈论 Numpy 数组,还是指的是列表?
  • 不,只是普通的,比如[[1, 2], [3, 4]]

标签: python arrays list dictionary


【解决方案1】:

如果使用键/值对的列表,获取键对应的值需要进行线性搜索,即 O(n)。如果列表按键排序,您可以将其改进为 O(log n),但是添加到列表变得更加复杂和昂贵,因为您必须保持它的排序。

字典被实现为哈希表,因此获取与键对应的值是摊销常数时间。

此外,Python 提供了方便的语法来查找字典中的键。你可以写dictname[key]。由于列表不打算用作查找表,因此没有相应的语法来通过键查找值。 listname[index] 通过数字位置获取元素,而不是在键/值对中查找键。

当然,如果您想使用关联列表,没有什么能阻止您编写自己的函数来这样做。您还可以将它们嵌入到一个类中并定义适当的方法,以便您可以使用[] 语法来获取和设置它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    相关资源
    最近更新 更多