Python中要列出的类型转换字典的时间复杂性

Python中要列出的类型转换字典的时间复杂性,python,list,dictionary,Python,List,Dictionary,如果我们有一个包含“n”个键值对的字典,那么,将其键入列表是否是一个线性时间操作(即O(n))?不清楚“将其键入列表”是什么意思列表(d)将返回字典键的列表列表(d.items())将返回键/值对的列表 不管怎样,都是O(n)。它不能比O(n)快,因为它显然必须迭代所有字典项。没有理由它会比O(n)慢。你试过分析它吗?请这样做,并报告结果,如果他们不是你所期望的。你说的打字是什么意思?您能展示一个代表所需操作的示例代码吗?From:Iteration[2]:O(n)。因此,是的,它是线性的(关于

如果我们有一个包含“n”个键值对的字典,那么,将其键入列表是否是一个线性时间操作(即O(n))?

不清楚“将其键入列表”是什么意思<代码>列表(d)将返回字典键的列表<代码>列表(d.items())将返回键/值对的列表


不管怎样,都是O(n)。它不能比O(n)快,因为它显然必须迭代所有字典项。没有理由它会比O(n)慢。

你试过分析它吗?请这样做,并报告结果,如果他们不是你所期望的。你说的打字是什么意思?您能展示一个代表所需操作的示例代码吗?From:Iteration[2]:O(n)。因此,是的,它是线性的(关于删除条目的警告,请参见链接),并且您不需要进行任何类型转换。您正在从一个iterable创建一个列表,而该iterable恰好是一个字典。对字典的迭代产生键,因此您正在创建一个包含所有键的列表。@MSeifert,所需的操作是打印列表(dicta)。这里,dicta是一本字典,它不是O(n)。否则,所有这些常数n=1的情况将花费大约相同的常数时间,而不是加倍时间:@StefanPochmann:是的,您可以通过创建大量密钥然后删除大部分密钥来产生病理情况。这是典型时间复杂度和最坏情况时间复杂度之间的差异。