There's nothing better than an actor who's got *the range*.
So, when Reddit user u/phantom_avenger asked the wonderful people of r/Movies, "which actors are good at playing the hero AND the villain?", we thought I'd round up some of my favourite answers...
3. Idris Elba
4. Stephen Root
5. Laura Linney
6. Benedict Cumberbatch
7. Ralph Fiennes
8. Margo Martindale
9. Samuel L. Jackson
10. Chris Evans
11. Melanie Lynsky
12. Anthony Hopkins
13. Jodie Foster
14. Tom Hardy
15. Olivia Colman
16. Margot Robbie
17. Denzel Washington
18. Cate Blanchett
19. David Boreanz
20. Daniel Radcliffe
21. Charlize Theron
Note: submissions have been edited for length/clarity.