每个Python数据结构的功能是什么?

时间:2011-09-20 13:11:59

标签: python data-structures

python中有太多的数据结构。有时我认为其中一些可能没用,唯一需要的是列表。任何人都可以告诉我每个python数据结构的功能是什么?

2 个答案:

答案 0 :(得分:2)

  

唯一需要的是列表

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

  • 通过密钥获取值[dicts]
  • 检查集合中的成员资格[sets]
  • 防止重复[套]
  • 执行集合操作(​​并集,差异等)[sets]
  • 将字符串视为文本,而不是字符集合(例如标题字词)[string]
  • 模型树[取决于,但经常手工轧制]
  • 模型图(你不会相信它们有多么令人难以置信)[dicts or hand-rolled]
  • 确保不变性[元组,冻结,字符串]
  • 删除并添加项目开头 [dequeue]
  • 确保FIFO(先进先出)语义[queue]

然后你可能会单独与名单相处。这只是标准库集合类型所涵盖的用例,我知道这一点。还有许多其他数据类型,以及更多使用每个集合的方法。

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

答案 1 :(得分:1)

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

对于具有常量查找,插入和删除的键和值之间的关联,有dict。对于具有常量查找,插入和删除的非重复元素的集合,有set。所有其他集合的目的应该在Python文档中描述。

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