Python 如何在元组列表中选择具有特定值的元素

Python 如何在元组列表中选择具有特定值的元素,python,list,tuples,list-comprehension,combinations,Python,List,Tuples,List Comprehension,Combinations,我想在元组的列表中选择一些具有特定值的元素。假设我有verticis=[2,3,4,5]的元组组合列表,它是res=[(2,3,5),(2,4,5),(3,4,5),(2,3,4,5)] 然后我想挑选所有的元组,它们在res中包含key=[2,4,5]。我使用了列表理解 但出现错误:要解包的值太多(预期为2) 输出应该是:[(2,4,5)、(2,3,4,5)] 看起来您正试图从每个项目中提取索引和值。在这种情况下,使用enumerate函数:c=[idx的值,如果idx位于要拾取的项目中,则枚举

我想在
元组的列表中选择一些具有特定值的元素。假设我有verticis=[2,3,4,5]的元组组合列表,它是res=[(2,3,5),(2,4,5),(3,4,5),(2,3,4,5)]

然后我想挑选所有的
元组
,它们在res中包含
key=[2,4,5]
。我使用了列表理解

但出现错误:
要解包的值太多(预期为2)

输出应该是:
[(2,4,5)、(2,3,4,5)]


看起来您正试图从每个项目中提取
索引
。在这种情况下,使用
enumerate
函数:
c=[idx的值,如果idx位于要拾取的项目中,则枚举(res)中的值]


您可以在上找到更多信息。

看起来您正试图从每个项目中提取
索引和
值。在这种情况下,使用
enumerate
函数:
c=[idx的值,如果idx位于要拾取的项目中,则枚举(res)中的值]


您可以在上找到更多信息。

它不起作用。并非所有元组都包含[2,4,5]。@Aras在您当前的函数中,看起来您只是在
res
中提取元组,其索引位于
items\u to_pick
。如果你想做你想做的事情,请查看@ShashSinha的回答,它不起作用。并非所有元组都包含[2,4,5]。@Aras在您当前的函数中,看起来您只是在
res
中提取元组,其索引位于
items\u to_pick
。如果你想做你想做的事情,看看@ShashSinha的回答。我把问题改得更清楚了。我的意思是让它更清楚。很抱歉,如果你愿意,我可以私下发给你。我把问题改得更清楚了。我想说得更清楚些。很抱歉,如果你愿意,我可以私下寄。

verticis = [2,3,4,5]
items_to_pick = [2, 4, 5]

i, j = len(items_to_pick), len(verticis)
res1 = [com for sub in range(j) for com in combinations(verticis, sub + 1)] 
res2 = [com for sub in range(i - 1) for com in combinations(verticis, sub + 1)] 

res = list(set(res1) - set(res2)) 

c = [value for idx, value in enumerate(res) if idx in items_to_pick]
c=[value for idx, value in res if idx in items_to_pick]
res= [(2, 3, 5), (2, 4, 5), (3, 4, 5), (2, 3, 4), (2, 3, 4, 5)]

items_to_pick = [2, 4,5] 

selected= [tup for tup in res if all(i in tup for i in items_to_pick)]