Python–从列表中提取元组超集
原文:https://www . geeksforgeeks . org/python-extract-tuple-superts-from-list/
有时,在使用 Python 元组时,我们可能会遇到一个问题,即我们需要提取所有元组,这些元组包含目标元组中的所有元素。这个问题可以在诸如 web 开发等领域得到应用。让我们讨论一下解决这个问题的某些方法。
输入 : test_list = [(5,6,6),(4,2,7),(9,6,5,6)] test_tuple = (6,6) T5】输出 : [(5,6,6),(9,6,5,6)]
输入 : test_list = [(5,6,6),(4,2,6),(9,6,5,6)] test_tuple = (6), T5】输出 : [(5,6,6),(4,2,6),(9,6,5,6)]
方法:使用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))
Output :
The original list is : [(5, 6, 8), (4, 2, 7), (9, 6, 5, 6)]
The superset tuples : [(9, 6, 5, 6)]
版权属于:月萌API www.moonapi.com,转载请注明出处