Just to present some other options and information that may be missing from the current answers:
If you are sure your values are unique, and therefore can become keys, the simplest method is a dict comprehension:
year_person = {2000: 'Linda', 2001: 'Ron', 2002: 'Bruce', 2003: 'Linda', 2004: 'Bruce', 2005: 'Gary', 2006: 'Linda'}
person_year = {key: value for (value, key) in year_person.items()}
Of course, in your case, they are not, so this doesn't work (as it only gives the last value found):
person_year = {'Bruce': 2004, 'Linda': 2006, 'Ron': 2001, 'Gary': 2005}
Instead, we can use a nested list comp inside a dict comp:
{key: [value for value, check_key in year_person.items() if check_key==key] for key in year_person.values()}
Giving us:
{'Bruce': [2002, 2004], 'Linda': [2000, 2003, 2006], 'Ron': [2001], 'Gary': [2005]}
This works, but isn't efficient due to having to loop over the entire dictionary for every entry. A much better solution is the defaultdict solution given by alan, which requires only a single loop.