📜  Python – 从列表中提取元组超集

📅  最后修改于: 2022-05-13 01:55:32.067000             🧑  作者: Mango

Python – 从列表中提取元组超集

有时,在使用Python元组时,我们可能会遇到需要提取所有元组的问题,这些元组包含目标元组中的所有元素。这个问题可以应用在 Web 开发等领域。让我们讨论一下可以解决这个问题的某种方法。

方法:使用Counter() + list comprehension + all()
上述功能的组合可以用来解决这个问题。在此,我们使用 Counter() 执行计数任务。 all() 用于检查所有元素是否构成子集,列表推导用于将所有逻辑绑定在一个块中。

# Python3 code to demonstrate working of 
# Extract tuple supersets from List
# Using all() + list comprehension + Counter
from collections import Counter
  
# initializing list
test_list = [(5, 6, 8), (4, 2, 7), (9, 6, 5, 6)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing tuple
test_tup = (6, 6, 5)
  
# Extract tuple supersets from List
# Using all() + list comprehension + Counter
res = [sub for sub in test_list if 
       all(Counter(sub)[x] >= Counter(test_tup)[x]
       for x in Counter(test_tup))]
  
# printing result 
print("The superset tuples : " + str(res)) 
输出 :
The original list is : [(5, 6, 8), (4, 2, 7), (9, 6, 5, 6)]
The superset tuples : [(9, 6, 5, 6)]