python中的列表和集合有什么区别?

时间:2021-04-20 03:54:33

标签: python python-3.x list set big-o

我读到该列表需要 O(n) 来搜索,而 set 需要 O(1)。

1)我不明白为什么搜索需要不同的时间,即使它们包含多个元素。

2) 为什么使用集合而不是列表会有很大的不同? python list 和 python set 之间的区别是什么,尤其是在搜索时。

3) 考虑到内存和时间,使用 list 或 python 哪个更好

1 个答案:

答案 0 :(得分:1)

集合和列表之间的一些主要区别。

  • 集合的顺序未定义。例如您无法确定集合的“第一个”元素是什么。
  • 集合必须是唯一的,不能包含重复的元素。

这一切都非常简单,但是对于一个只有唯一项且顺序未确定的集合,它允许根据自身唯一地定义对象在内存中的位置。因此,当您在集合中搜索特定对象时,它已经知道该对象在内存中的预期位置。这就是为什么它是 O(1)(不需要遍历所有元素)

  1. 如果您不关心列表的顺序并且总是有唯一的项目,那么最好使用集合。