首页 > 解决方案 > 在python中将集合转换为列表的算法复杂度

问题描述

在 python 中,当我将我的集合转换为列表时,这样的任务的算法复杂度是多少?它只是对集合进行类型转换,还是需要将项目复制到不同的数据结构中?发生了什么?

我很想知道复杂性是恒定的,就像 Python 中的很多东西一样。

标签: pythonpython-3.xtime-complexitypython-collections

解决方案


您可以通过简单的基准测试轻松看到这一点:

import matplotlib.pyplot as plt


x = list(range(10, 20000, 20))
y = []
for n in x:
    s = set(range(n))
    res = %timeit -r2 -n2 -q -o list(s)
    y.append(res.best)


plt.plot(x, y)

阴谋

这清楚地显示了一种线性关系——以一些噪声为模。

(编辑为第一个版本是对不同的东西进行基准测试)。


推荐阅读