Python-在元组集中定位元素

Python-在元组集中定位元素,python,set,tuples,Python,Set,Tuples,我有一组元组,每个元组有有限个元素 我想检查一下这个集合中是否有某种元素, 它有我正在搜索的特定组件 set_of_tuples = {(el_11, el_12, el_13), (el_21, el_22, el_23)} a = (dont_care, el_12, dont_care) 如何在集合中找到包含该特定组件的tuple元素 我可以使用列表理解来实现这一点,但这是一个非常缓慢的过程 使用集合,在简单的情况下,我可以这样做: el = (1,2) set_of_tuples =

我有一组元组,每个元组有有限个元素

我想检查一下这个集合中是否有某种元素, 它有我正在搜索的特定组件

set_of_tuples = {(el_11, el_12, el_13), (el_21, el_22, el_23)}
a = (dont_care, el_12, dont_care)
如何在集合中找到包含该特定组件的tuple元素

我可以使用列表理解来实现这一点,但这是一个非常缓慢的过程

使用集合,在简单的情况下,我可以这样做:

el = (1,2)
set_of_tuples = {(1,2), (2,3) ...}
我可以通过以下操作验证它是否存在: 元组集合中的el

我想问的是,有没有一种方法可以做完全相同的事情,但不考虑某些元组元素,例如:

el = (_,2)
el in set_of_tuples
如果该元素存在于该集合的任何元组中

使用
any()
函数:

set_of_tuples = {(11, 12, 13), (21, 22, 23)}
el = 12
exists = any(el in t for t in set_of_tuples)

print(exists)    # True

要获取外部集合中的位置,请执行以下操作:


所以您想检查某个元素(
el_12
)是否位于某个位置(第二个位置)?正确@A看起来你想让我们为你写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查and.Hi@RafaelMarques,为了实现最大优化,出现了一个问题,您是否要多次查看同一组元素(或最小更改)?如果答案是肯定的,您可以对您的数据使用一次性慢速排序方法,然后使用一些优化算法作为快速排序进行检查。如果这是您的场景,我可以尝试帮助您。indead验证元素是否存在。还有可能找到该元素的具体位置吗?@RafaelMarques,你是指内部元组中的具体位置还是外部集合中的位置,或者两个位置?我看到了你的解决方案,它是正确的,因为它给出了我所要求的。然而,我仍然担心执行时间,这是一个非常缓慢的过程。我试着在不理解列表的情况下,使用集合,因为它很快。例如,给定一个集合li=[i for i in range(0100000)]set_li=set(li)do:如果set_li:print('found')中的50000花费的时间太少,那么python会将结果舍入为0.0,如果我使用列表理解进行同样的操作,则大约需要0.06秒。所以我想问的是,是否有一种方法(你知道)可以做到:(u,element)在元组集合中,@RafaelMarques,
set
可以让你快速搜索精确的搜索值,但部分不像
(,12,)
。当设置为“如果已填充序列”-您应该指定要填充的确切序列search@RafaelMarques既然集合是无序的,这个位置有什么帮助?
pos = -1
for i,t in enumerate(set_of_tuples):
    if el in t:
        pos = i
        break

print(pos)