Python - 在元组集中定位元素

时间:2017-10-23 14:22:45

标签: 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)

如何在集合中找到包含该特定组件的元组元素?

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

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

el = (1,2)
set_of_tuples = {(1,2), (2,3) ...}

我可以验证它是否存在,执行: el in set_of_tuples。

我问的是,有没有办法做同样的事情,但没有关心某些元组元素,例如:

el = (_,2)
el in set_of_tuples

1 个答案:

答案 0 :(得分:5)

  

如果此元素存在于该集合的任何元组中

使用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

获取外部集合中的位置

pos = -1
for i,t in enumerate(set_of_tuples):
    if el in t:
        pos = i
        break

print(pos)