嵌套变量类型如何改变时间复杂度?

How do nested variable types change time complexity?

我正在创建一个包含嵌套类型的列表,如下所示:

nested = [{}, set([]), []]

假设 'nested' 中的每个项目都有很多项目。

  1. 对于 'nested' 中的每种类型的项目,Python's Wiki 中的哪些操作会因为项目是嵌套的而改变复杂性?对于添加、删除、弹出等操作。如果 nested[1]nested[2] 每个都有 1,000 或 10,000 或 1,000,000 项,对 nested[0] 执行操作会改变该字典的复杂性吗?
  2. 哪些操作会改变列表的复杂性'nested'?对于像 nested.pop(2) 这样的东西,其中 nested[2] 可能有 1,000 个项目。如果 nested[2] 有 1,000,000 个项目,nested.pop(2) 会花费相同的时间吗?

我担心将嵌套项添加到集合、字典和列表中的弹出项会因为嵌套而改变这些操作的 O(1) 优势。

  1. nested[1]nested[2] 对在 nested[0] 上执行操作所花费的时间没有任何影响。一个对象不知道它可能在哪些容器中被引用,也不知道容器中可能有哪些其他对象。

  2. 无论添加、删除、检索或替换什么对象,列表操作都需要相同的时间。 nested[2] 是什么并不重要; nested.pop(2) 花费相同的时间。散列大型或高度嵌套的元组或其他可散列对象可能需要更长的时间,因此基于散列的数据结构如 dictset 可能需要更长的时间来处理大型或高度嵌套的键,尽管没有对价值观的任何此类关注。