Get tuple data in an array containing only one element from another tuple
You don't need parenthesis around the conditions in your if statements
if x in y and another_x in y is the same as if (x in y) and (another_x in y)

Use list comprehensions when possible see PEP8#202

Use intersection of sets to get how many elements occur in both tuples
If duplicated don't matter (as they do not in your code) it is possible to convert the tuples into sets and check if the intersection between the sets are 1 (Meaning there is only 1 element that occurs in both) Like @Maarten Fabré suggested



JUDGE = (5, 12, 24)

def valid_bet(bets):
    return [bet for bet in bets if len(set(bet) &amp; set(JUDGE)) == 1]
    # return [bet for bet in best if len(set(bet).intersection(set(JUDGE))) == 1]
    # set_a &amp; set_b == set_a.intersection(set_b)

if __name__ == &quot;__main__&quot;:
    bets = [(3, 12, 24, 29, 30),
            (3, 13, 18, 19, 22),
            (1, 11, 16, 17, 22),
            (3, 4, 5, 16, 30),
            (1, 11, 15, 20, 24)]
    print(valid_bet(bets))