for key in numbers:
if key % 2 != 0:
Oops, try again. Your function fails on purify([4, 5, 5, 4]). It returns [4, 5, 4] when it should return [4, 4].
I tried to use print instead of return in the last line, it works, output [4,4]. But it crash on  cuz "Nonetype" output, I understand it. What is the reason return can not work?