【发布时间】:2021-11-18 23:21:42
【问题描述】:
我有一本关于 Python 的书说:
in是一个非常快速的集合操作:stopwords_list = ["a", "an"] + hundreds_of_other_words + ["yet", "you"] "zip" in stopwords_list # False, but have to check every element stopwords_set = set(stopwords_list) "zip" in stopwords_set # Very fast to check
我有两个问题:
- 为什么
in在集合上比在列表上更快? - 如果
in运算符在集合上确实更快,那么为什么Python 的制造者不重写in列表的方法来执行x in set(list)?为什么这本书中的想法不能成为语言的一部分?
【问题讨论】:
-
因为从列表中创建
set会消耗 CPU -
还因为不是所有可以放在列表中的东西都可以放在集合中。
-
效率方面
x in set(list)和x in list是一样的。两者都是线性运算。
标签: python