threshold = 4 mylist = [('Part1', 5, 5), ('Part2', 7, 7), ('Part3', 11, 9), ('Part4', 45, 45), ('part5', 5, 5)] filtered = [x for x in mylist if x[1] >= threshold and x[2] >= threshold] keyfunc = lambda x: x[1] my_min = keyfunc(min(filtered, key=keyfunc)) result = [v for v in filtered if keyfunc(v)==keyfunc(my_min)]==my_min] # [('Part1', 5, 5), ('part5', 5, 5)]