【发布时间】:2017-04-18 10:08:15
【问题描述】:
我在尝试检查某个元素是否是 Python 中的集合的一部分时遇到了问题。 (我的集合包含大约 60 万个字符串元组。)
我正在寻找一种解决方案,该解决方案利用 in 运算符的优势来检查值是否是集合元组的元素。
我找到了类似的解决方案:
# S set of tuples, I'm checking if v is the second element of a tuple
any( y == v for (_, y) in S )
但这有 O(n) 复杂度。
Python 文档说 IN 运算符的平均复杂度为 O(1)。
编辑
我的问题是:如何使用in运算符的速度检查一个元素是否是集合中至少一个元组的第一个/第二个/...元素。
【问题讨论】:
-
你的问题是?
-
如何使用 IN 运算符的速度检查一个元素是否是集合中至少一个元组的第一个/第二个/...元素。
-
是的,但是对每次搜索都执行此操作与我的代码具有相同的复杂性,因为创建新集合。
标签: python performance set tuples any