Let's assume that "London" is any major mainline station - they're all reasonably central and well-connected for onward journeys - and that you're only interested in rail not buses or taxis.
All but one (Luton) have a station connected directly to the airport, though getting out of the terminal and to the station is quicker for some than for others. I haven't counted travel time to get to the airport station for any of them except Luton.
All fares are single and assume no railcards, offers, etc. Unless clearly stated, no change of transport en route. Trains per hour are during the day on a weekday.
- Gatwick Express to Victoria. 30 minutes. £19.90 single. Four trains per hour.
- Local train to Victoria. 35-40 minutes. £15.40 single. Around five trains per hour.
- Local train to London Bridge. 35-55 minutes. £9 single. Four trains per hour.
- Local train to St. Pancras. 55-70 minutes. £10 single. Four trains per hour.
There are also direct rail connections to Bedford, Luton, St. Albans, Brighton, Eastbourne, & Portsmouth. Through train to Luton Airport Parkway.
- Local train to St. Pancras. 25-45 minutes, plus 10 minute bus ride to the station from the airport. £14 single plus bus ticket (£2 single). About seven trains per hour (varies).
There are also direct rail connections to Leicester, Nottingham, Bedford, Luton, St. Albans, and even Brighton. Through train to Gatwick.
- Docklands Light Railway. No direct connection to a mainline station in central London, but 20 minutes to Bank (equally central) or go to Canning Town and then change to the Jubilee Line to London Bridge (22m) or Waterloo (25m). Single fare is £4.90 cash, £3.30 Oyster (peak), £2.80 Oyster (off-peak). Frequent service.
If you are heading out of London to the east, you can also take the DLR to Stratford (for Essex) or Stratford International (for Kent)
- Piccadilly Line tube to King's Cross. ~1 hour, or a little less to somewhere like Piccadilly Circus - this is one of the few to go across London so you can get off in the middle! Single fare is £6 cash, £5.10 Oyster (peak), £3.10 Oyster (off-peak). Six trains per hour (T4 & T5), or twelve trains per hour (T2/3)
- TfL Rail to Paddington. 25-35 minutes, £10.20 single. Two trains per hour. (Formerly Heathrow Connect - the old name may still be used in places - and will become the Elizabeth Line in Dec 2018)
- Heathrow Express to Paddington. 15-20 minutes (depending on terminal), £22 single. Four trains per hour.
- Local train to Liverpool Street. ~55 minutes. £16.80 single (£15.80 off-peak). Three trains per hour, one per hour on Sundays.
- Stansted Express to Liverpool Street. 45-55 minutes. £19 single. Four trains per hour.
Direct connections to Cambridge, Peterborough, Leicester, and (believe it or not) Birmingham.
City is of course the clear winner on both price and time, but some others are better than I expected...