gpt4 book ai didi

python - 从唯一元素列表高效构建 Python 集

转载 作者:行者123 更新时间:2023-12-01 23:07:45 24 4
gpt4 key购买 nike

我有一个元素列表,这些元素的构造应该是唯一的。我的意思是,任何元素都不会在列表中出现多次。

我想有效地测试某个项目是否存在于该列表中,并且对于许多项目都是如此。

如果我将列表转换为集合,测试会更有效。

现在我的问题是如何有效地构建该集合。

我猜当我执行 my_set = set(my_list) 时,Python 在逐步构建集合时必须以某种方式测试列表中项目的成员资格。

  1. 鉴于我知道列表不包含重复项,这是否不是最佳选择?

  2. 是否可以做得更好?

  3. 如果我有一个迭代器而不是列表,上面问题的答案是否会改变(我仍然知道它将产生的项目将是唯一的)?

最佳答案

Python 在构造集合时不会进行显式成员资格测试。不需要;集合本质上是唯一的,即成员通过其哈希值进行索引。因此,在构造集合时,Python 所做的就是依次对每个元素进行哈希处理,然后将其插入到适当的位置。

Python docs on time complexity没有明确列出集合构造,但他们确实说大多数操作与字典相同,并且插入字典的时间复杂度为 O(1),由此我们可以假设集合构造为 O(n)。

关于python - 从唯一元素列表高效构建 Python 集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29286562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com