def get_list(func): def inner(list): ret = [] for v in list: if func(v): ret.append(v) return ret return inner list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] print(get_list(lambda v: (0 == (v % 2)))(list)) print(get_list(lambda v: (0 != (v % 2)))(list)) print(get_list(lambda v: (0 == (v % 3)))(list)) print(get_list(lambda v: ((0 == (v % 2) and (0 == (v % 3)))))(list)) print(get_list(lambda v: ((0 != (v % 2) and (0 == (v % 3)))))(list))