【发布时间】:2013-04-06 06:49:48
【问题描述】:
我正在寻找一个内置的 Python 数据结构,它可以add 一个新元素,remove 一个现有元素,并选择一个随机元素,所有这些都比 O(n) 时间好。
我希望 set 可以做到这一点,但据我所知,从 Python 集中选择随机元素的唯一方法是 random.choice(list(my_set)),这需要 O(n) 时间。
我更喜欢 Python 内置的解决方案,因为我需要高效且易于部署。不幸的是,Python 似乎没有内置的树数据类型。
【问题讨论】:
-
这可能是界面设计的问题。在tree/hashmap中随机选择并不难,但即使是C++ STL的map/unordered_map也不支持随机选择。