有没有办法在列表中获得相同的第一个或第二个元素元组?

Is there a way to get the same first or second element tuple in a list?

这个问题我纠结了好久,网上也没找到多少有用的资料。我尝试使用 for 循环,但我可以像 c++ 一样使用它并使用 i+2 之类的索引来获取该元素。如果我有一个像 [(0, 2), (1, 2), (2, 2), (2, 3), (3, 5), (4, 5), (4, 6), (4, 7)] 这样的列表。列表中有几个元组。 4 作为元组的第一个元素出现了 3 次。而2作为元组的第二个元素出现了三次。我怎样才能从列表中取出 (4, 5), (4, 6), (4, 7)[(0, 2), (1, 2), (2, 2) 因为它们具有相同的元组元素?

你可以在这里使用filter

lst = [(0, 2), (1, 2), (2, 2), (2, 3), (3, 5), (4, 5), (4, 6), (4, 7)]

same_first = 4

new_lst = list(filter(lambda e:e[0]==same_first,lst))
print(new_lst)

或者做一个函数。

lst = [(0, 2), (1, 2), (2, 2), (2, 3), (3, 5), (4, 5), (4, 6), (4, 7)]

def same(lst,same_number,choice):
    return list(filter(lambda e:e[choice]==same_number,lst))
    
# change choice to 0 for first and 1 for second 
print(same(lst=lst,same_number=2,choice=1)) # [(4, 5), (4, 6), (4, 7)]

print(same(lst=lst,same_number=2,choice=1)) # [(0, 2), (1, 2), (2, 2)]