Allow email subscriber to edit their profile

I was wondering if there was a way to allow customers to update their profile like Name, Email, Address. As well as choosing which email distribution list they can be part of.