Python 将列表转换为集合,大 O

Python converting a list to set, big O

并感谢您的帮助

words = [....#Big list of words]
words_set = set(words)

当 n=len(words) 时,我很难确定 set(words) 的复杂度。 是 O(n) 因为它在列表的所有项目上移动,还是 O(l(n-l)) 当 l 是单个单词长度时? 感谢帮助!如果WC和BC也有区别

编辑:不要介意 O(l(n-l)) 重复子字符串大 O 是错误的。

我不明白你的第二个选项,但迭代列表是 O(n) 并且你必须迭代列表以将其转换为集合。对每个元素的任何操作 - 例如散列 - 都是一个常数因子,由迭代的线性时间决定。