Banks in Britain generally don't charge a fee, but on the other hand they make money out of it by having a different exchange rate for buying pounds from when they sell them. You ALWAYS end up paying for the service, whether it looks like it or not! It will probably not work out much different to change your money before you come.
If you want to change some more while in London, the "big four" banks are Barclays, HSBC, Lloyds and NatWest, and any of those will do it for you on the spot. Of course they have lots of pounds available to exchange for your euros! Go into any of those and just ask where to go to change money. Do NOT use anywhere called a "bureau de change". The exchange rate will be much worse.
It helps to have a small amount in pounds before you go, so you've got them before you can get to a bank.
To change money back at the end of your stay, banks will only take notes so try and spend all your British coins before you go home.
Use your normal debit card at an ATM. You'll get the official exchange rate and pay only a fee (maybe 3%). Changing money at a bank counter costs way more than 3%. They make their money on giving an awful exchange rate and then say "we don't charge commission".
If you change euros to pounds you will' in effect. pay 2 lots of fees. They will charge you the "buy euros" rate and then charge you the "sell pounds" rate.
Ask your bank about their partner bank(s) in the UK where you can draw British pounds using your ATM card. Change a small amount in advance at home to have it ready for the first expenses.
Asda Tesco post offices banks
The lowest cost and safest is to simply use your debit card and draw pounds from any cash machine.
Change it in London at the major airports or major transit hubs like railway station.
Use the Post Office
You get a much better exchange rate if you use debit or credit cards rather than cash.
Try the post office they don't charge you