【问题标题】:What is the function for each Python data structures? [closed]每个 Python 数据结构的功能是什么? [关闭]
【发布时间】:2011-09-20 13:11:58
【问题描述】:

python中有很多数据结构。有时我认为其中一些可能没用,唯一需要的是列表。谁能告诉我每个python数据结构的作用是什么?

【问题讨论】:

  • 每个人都有用。你认为哪些是不必要的?浮点数而不是整数?列表而不是元组或双端队列或数组或集合?
  • 这不是一个真正的问题..
  • 太棒了@Chris,现在宇宙将被更难以理解的东西所取代!
  • @Chris,你的意思是[42]

标签: python data-structures


【解决方案1】:

唯一需要的就是列表

我假设您谈论的是集合,因为没有原子值放入列表的列表是毫无价值的。尽管如此,列表还是不能很好地处理很多事情。当然,如果你从不(或者很少有优雅和性能无关紧要)需要[括号中的更好选择]......

  • 通过键 [dicts] 获取值
  • 检查集合 [sets] 中的成员身份
  • 防止重复 [sets]
  • 执行集合操作(​​联合、差分等)[集合]
  • 将字符串视为文本,而不是字符集合(例如,标题大小写的单词)[字符串]
  • 模型树 [取决于,但经常手动滚动]
  • 模型图(您不会相信它们的通用性)[dicts or hand-rolled]
  • 确保不变性[元组、冻结集、字符串]
  • 删除和添加项目在开头 [dequeue]
  • 确保 FIFO(先进先出)语义 [队列]

那么你可以单独处理列表。这只是标准库集合类型涵盖的用例,我不禁想到。还有许多其他数据类型,以及使用每个集合的更多方式。

我不了解你,但我估计我什至不使用列表来满足我 一半 的收藏需求。当然,这取决于项目,但很少有问题只需要序列。

【讨论】:

    【解决方案2】:

    如果您的意思是集合数据类型,那么是的,所有都可以用列表来完成。事实上,一切都可以用对(长度为 2 的元组)来完成。但是,操作会非常缓慢且编写起来很麻烦。

    对于具有恒定时间查找、插入和删除的键和值之间的关联,有dict。对于具有恒定时间查找、插入和删除的非重复元素的集合,有set。 Python 文档中应描述所有其他集合的用途。

    选择一本关于算法和数据结构的好书,以掌握各种集合结构的基本优点和缺点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-12
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      相关资源
      最近更新 更多