# List of United Kingdom Parliament constituencies (1997–2024) by region

These constituencies were used for elections to the House of Commons of the United Kingdom from 1997 to 2024.

## England
### East Midlands (44 then 46)
#### Derbyshire (10 then 11)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Amber Valley | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Bolsover | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Chesterfield | Labour | Liberal Democrat | Liberal Democrat | Labour | Labour | Labour | Labour |
| Derby North | Labour | Labour | Labour | Labour | Conservative | Labour | Conservative |
| Derby South | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Erewash | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| High Peak | Labour | Labour | Labour | Conservative | Conservative | Labour | Conservative |
| Mid Derbyshire | N/A | N/A | N/A | Conservative | Conservative | Conservative | Conservative |
| North East Derbyshire | Labour | Labour | Labour | Labour | Labour | Conservative | Conservative |
| South Derbyshire | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| West Derbyshire / Derbyshire Dales (from 2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Leicestershire (10)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Blaby / South Leicestershire (from 2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Bosworth | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Charnwood | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Harborough | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Leicester East | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Leicester South | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Leicester West | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Loughborough | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| North West Leicestershire | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Rutland and Melton | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Lincolnshire (7)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Boston and Skegness | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Gainsborough | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Grantham and Stamford | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Lincoln | Labour | Labour | Labour | Conservative | Conservative | Labour | Conservative |
| Louth and Horncastle | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Sleaford and North Hykeham | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| South Holland and The Deepings | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Northamptonshire (6 then 7)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Corby | Labour | Labour | Labour | Conservative$^1$ | Conservative | Conservative | Conservative |
| Daventry | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Kettering | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| Northampton North | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Northampton South | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| South Northamptonshire | N/A | N/A | N/A | Conservative | Conservative | Conservative | Conservative |
| Wellingborough | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
$^1$seat won by Labour in a 2012 by-election

#### Nottinghamshire (11)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Ashfield | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Bassetlaw | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Broxtowe | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Gedling | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Mansfield | Labour | Labour | Labour | Labour | Labour | Conservative | Conservative |
| Newark | Labour | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Nottingham East | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Nottingham North | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Nottingham South | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Rushcliffe | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Sherwood | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |

### East of England (56 then 58)
#### Bedfordshire (6)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Bedford | Labour | Labour | Labour | Conservative | Conservative | Labour | Labour |
| Luton North | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Luton South | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Mid Bedfordshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| North East Bedfordshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| South West Bedfordshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Cambridgeshire (7)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Cambridge | Labour | Labour | Liberal Democrat | Liberal Democrat | Labour | Labour | Labour |
| Huntingdon | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| North East Cambridgeshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| North West Cambridgeshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Peterborough | Labour | Labour | Conservative | Conservative | Conservative | Labour | Conservative |
| South Cambridgeshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| South East Cambridgeshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Essex (17 then 18)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Basildon / South Basildon and East Thurrock (2010) | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Billericay / Basildon and Billericay (2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Braintree | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| Brentwood and Ongar | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Castle Point | Labour | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Colchester | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Epping Forest | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Harlow | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Harwich / Clacton (2010) | Labour | Labour | Conservative | Conservative$^1$ | UKIP | Conservative | Conservative |
| Maldon and East Chelmsford / Maldon (2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| North Essex / Harwich and North Essex (2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Rayleigh / Rayleigh and Wickford (2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Rochford and Southend East | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Saffron Walden | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Southend West | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Thurrock | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| West Chelmsford / Chelmsford (2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Witham | | | | Conservative | Conservative | Conservative | Conservative |

#### Hertfordshire (11)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Broxbourne | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Hemel Hempstead | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| Hertford and Stortford | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Hertsmere | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Hitchin and Harpenden | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| North East Hertfordshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| St Albans | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Liberal Democrat |
| South West Hertfordshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Stevenage | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Watford | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Welwyn Hatfield | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Norfolk (8 then 9)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Broadland | | | | Conservative | Conservative | Conservative | Conservative |
| Great Yarmouth | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Mid Norfolk | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| North Norfolk | Conservative | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative |
| North West Norfolk | Labour | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Norwich North | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Norwich South | Labour | Labour | Labour | Liberal Democrat | Labour | Labour | Labour |
| South Norfolk | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| South West Norfolk | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Suffolk (7)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Bury St Edmunds | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Central Suffolk and North Ipswich | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Ipswich | Labour | Labour | Labour | Conservative | Conservative | Labour | Conservative |
| South Suffolk | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Suffolk Coastal | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Waveney | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| West Suffolk | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

### Greater London (74 then 73)
#### North East London Boroughs (23 then 22)

The boroughs of Enfield, Haringey, Islington, Hackney, Tower Hamlets, Newham, Waltham Forest, Redbridge, Barking & Dagenham and Havering.
| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Barking | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Bethnal Green and Bow | Labour | Labour | Respect | Labour | Labour | Labour | Labour |
| Chingford and Woodford Green | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Dagenham / Dagenham and Rainham (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| East Ham | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Edmonton | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Enfield North | Labour | Labour | Labour | Conservative | Labour | Labour | Labour |
| Enfield Southgate | Labour | Labour | Conservative | Conservative | Conservative | Labour | Labour |
| Hackney North and Stoke Newington | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Hackney South and Shoreditch | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Hornchurch | Labour | Labour | Conservative | | | | |
| Hornsey and Wood Green | Labour | Labour | Liberal Democrat | Liberal Democrat | Labour | Labour | Labour |
| Ilford North | Labour | Labour | Conservative | Conservative | Labour | Labour | Labour |
| Ilford South | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Islington North | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Islington South and Finsbury | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Leyton and Wanstead | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Poplar and Canning Town / Poplar and Limehouse (2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Romford | Labour | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Tottenham | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Upminster / Hornchurch and Upminster (2010) | Labour | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Walthamstow | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| West Ham | Labour | Labour | Labour | Labour | Labour | Labour | Labour |

#### North West London Boroughs (20)

The boroughs of Hillingdon, Harrow, Brent, Ealing, Barnet, Camden, Hammersmith & Fulham, Kensington & Chelsea and Westminster, and the City of London.
| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Brent East Brent Central (from 2010) | Labour | Labour$^1$ | Liberal Democrat | Liberal Democrat | Labour | Labour | Labour |
| Brent North | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Brent South | Labour | Labour | Labour | | | | |
| Chipping Barnet | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Cities of London and Westminster | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Ealing, Acton and Shepherd's Bush Ealing Central and Acton (from 2010) | Labour | Labour | Labour | Conservative | Labour | Labour | Labour |
| Ealing North | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Ealing Southall | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Finchley and Golders Green | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Hammersmith (from 2010) | | | | Labour | Labour | Labour | Labour |
| Hammersmith and Fulham Chelsea and Fulham (from 2010) | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| Hampstead and Highgate Hampstead and Kilburn (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Harrow East | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Harrow West | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Hayes and Harlington | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Hendon | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Holborn and St. Pancras | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Kensington and Chelsea Kensington (from 2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Labour | Conservative |
| Regent's Park and Kensington North Westminster North (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Ruislip-Northwood Ruislip Northwood and Pinner (from 2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Uxbridge Uxbridge and South Ruislip (from 2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### South East London Boroughs (16)

The boroughs of Lambeth, Southwark, Lewisham, Bromley, Greenwich and Bexley.
| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Beckenham | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Bexleyheath and Crayford | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| Bromley and Chislehurst | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Camberwell and Peckham | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Dulwich and West Norwood | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Eltham | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Erith and Thamesmead | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Greenwich and Woolwich | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Lewisham Deptford | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Lewisham East | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Lewisham West Lewisham West and Penge (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| North Southwark and Bermondsey Bermondsey and Old Southwark (from 2010) | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Labour | Labour | Labour |
| Old Bexley and Sidcup | Conservative | Conservative | Conservative$^1$ | Conservative | Conservative | Conservative | Conservative |
| Orpington | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Streatham | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Vauxhall | Labour | Labour | Labour | Labour | Labour | Labour | Labour |

#### South West London Boroughs (15)

The boroughs of Hounslow, Richmond, Kingston, Wandsworth, Merton, Sutton and Croydon.
| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Battersea | Labour | Labour | Labour | Conservative | Conservative | Labour | Labour |
| Brentford and Isleworth | Labour | Labour | Labour | Conservative | Labour | Labour | Labour |
| Carshalton and Wallington | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative |
| Croydon Central | Labour | Labour | Conservative$^1$ | Conservative | Conservative | Labour | Labour |
| Croydon North | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Croydon South | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Feltham and Heston | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Kingston and Surbiton | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Liberal Democrat | Liberal Democrat |
| Mitcham and Morden | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Putney | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Labour |
| Richmond Park | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative | Liberal Democrat |
| Sutton and Cheam | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Tooting | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Twickenham | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Liberal Democrat | Liberal Democrat |
| Wimbledon | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
$^1$MP sat as an Independent Conservative from Sep 2007 and an independent from Oct 2008
Seats:
| Party | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Labour | 9 | 9 | 6 | 4 | 5 | 7 | 8 |
| Conservative | 1 | 1 | 4 | 7 | 9 | 5 | 4 |
| Liberal Democrat | 5 | 5 | 5 | 4 | 1 | 3 | 3 |
Votes:
| Party | 1997 | 2001 | 2005 | 2010 | 2015 |
| Labour | 300,106 | 232,364 | 207,143 | 202,056 | 253,924 |
| Conservative | 270,881 | 209,871 | 238,704 | 303,548 | 332,273 |
| Liberal Democrat | 165,082 | 167,615 | 187,408 | 215,302 | 113,576 |
| UKIP | | | | | 57,308 |
| Green | | | | | 29,867 |

#### London total seats

| Party | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Labour | 57 | 55 | 44 | 38 | 45 | 49 | 49 |
| Conservative | 11 | 13 | 21 | 28 | 27 | 21 | 21 |
| Liberal Democrat | 6 | 6 | 8 | 7 | 1 | 3 | 3 |
| Respect | | | 1 | | | | |

### North East England (30 then 29)
#### Cleveland (6)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Hartlepool | Labour | Labour | Labour | Labour | Labour | Labour | Labour$^1$ |
| Middlesbrough | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Middlesbrough South and East Cleveland | Labour | Labour | Labour | Labour | Labour | Conservative | Conservative |
| Redcar | Labour | Labour | Labour | Liberal Democrat | Labour | Labour | Conservative |
| Stockton North | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Stockton South | Labour | Labour | Labour | Conservative | Conservative | Labour | Conservative |
$^1$ Seat won by the Conservatives in a May 2021 by-election

#### Durham (7)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Bishop Auckland | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| City of Durham | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Darlington | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Easington | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| North Durham | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| North West Durham | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Sedgefield | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |

#### Northumberland (4)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Berwick-upon-Tweed | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Blyth Valley | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Hexham | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Wansbeck | Labour | Labour | Labour | Labour | Labour | Labour | Labour |

#### Tyne and Wear (13 then 12)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Blaydon | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Gateshead East and Washington West / Washington and Sunderland West (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Houghton and Washington East / Houghton and Sunderland South (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Jarrow | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Newcastle upon Tyne Central | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Newcastle upon Tyne East and Wallsend / Newcastle upon Tyne East (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Newcastle upon Tyne North | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| North Tyneside | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| South Shields | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Sunderland North / Sunderland Central (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Sunderland South | Labour | Labour | Labour | | | | |
| Tyne Bridge / Gateshead (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Tynemouth | Labour | Labour | Labour | Labour | Labour | Labour | Labour |

### North West England (76 then 75)
#### Cheshire (11)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| City of Chester | Labour | Labour | Labour | Conservative | Labour | Labour | Labour |
| Congleton | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Crewe and Nantwich | Labour | Labour | Labour$^1$ | Conservative | Conservative | Labour | Conservative |
| Eddisbury | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Ellesmere Port and Neston | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Halton | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Macclesfield | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Tatton | Independent | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Warrington North | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Warrington South | Labour | Labour | Labour | Conservative | Conservative | Labour | Conservative |
| Weaver Vale | Labour | Labour | Labour | Conservative | Conservative | Labour | Labour |
$^1$seat gained by the Conservatives in a May 2008 by-election

#### Cumbria (6)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Barrow and Furness | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Carlisle | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Copeland | Labour | Labour | Labour | Labour | Labour | Conservative | Conservative |
| Penrith and The Border | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Westmorland and Lonsdale | Conservative | Conservative | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat |
| Workington | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |

#### Greater Manchester (28 then 27)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Altrincham and Sale West | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Ashton-under-Lyne | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Bolton North East | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Bolton South East | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Bolton West | Labour | Labour | Labour | Labour | Conservative | Conservative | Conservative |
| Bury North | Labour | Labour | Labour | Conservative | Conservative | Labour | Conservative |
| Bury South | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Cheadle | Conservative | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Denton and Reddish | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Eccles | Labour | Labour | Labour | | | | |
| Hazel Grove | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Heywood and Middleton | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Leigh | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Makerfield | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Manchester Blackley Blackley and Broughton (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Manchester Central | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Manchester Gorton | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Manchester Withington | Labour | Labour | Liberal Democrat | Liberal Democrat | Labour | Labour | Labour |
| Oldham East and Saddleworth | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Oldham West and Royton | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Rochdale | Labour | Labour | Liberal Democrat | Labour | Labour$^1$ | Labour | Labour |
| Salford Salford and Eccles (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Stalybridge and Hyde | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Stockport | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Stretford and Urmston | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Wigan | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Worsley Worsley and Eccles South (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Wythenshawe and Sale East | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
$^1$MP sat as an independent from Dec 2015

#### Lancashire (15 then 16)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Blackburn | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Blackpool North and Fleetwood / Blackpool North and Cleveleys (2010) | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Blackpool South | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Burnley | Labour | Labour | Labour | Liberal Democrat | Labour | Labour | Conservative |
| Chorley | Labour | Labour | Labour | Labour | Labour | Labour | Speaker (Lab) |
| Fylde | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Hyndburn | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Lancaster and Fleetwood (2010) | | | | Conservative | Labour | Labour | Labour |
| Lancaster and Wyre / Wyre and Preston North (2010) | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| Morecambe and Lunesdale | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Pendle | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Preston | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Ribble Valley | Conservative | Conservative | Conservative | Conservative$^1$ | Conservative | Conservative | Conservative |
| Rossendale and Darwen | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| South Ribble | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| West Lancashire | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
$^1$MP sat as an independent Sep 2013 - Apr 2014

#### Merseyside (16 then 15)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Birkenhead | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Bootle | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Crosby Sefton Central (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Knowsley North and Sefton East | Labour | Labour | Labour | | | | |
| Knowsley South Knowsley (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Liverpool Garston Garston and Halewood (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Liverpool Riverside | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Liverpool Walton | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Liverpool Wavertree | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Liverpool West Derby | Labour | Labour | Labour$^1$ | Labour | Labour | Labour | Labour |
| St Helens North | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| St Helens South St Helens South and Whiston (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Southport | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative |
| Wallasey | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Wirral South | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Wirral West | Labour | Labour | Labour | Conservative | Labour | Labour | Labour |
$^1$MP sat as an independent from Sep 2007

### South East England (83 then 84)
#### Berkshire (8)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Bracknell | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Maidenhead | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Newbury | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative | Conservative | Conservative |
| Reading East | Labour | Labour | Conservative | Conservative | Conservative | Labour | Labour |
| Reading West | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Slough | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Windsor | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Wokingham | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Buckinghamshire (7)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Aylesbury | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Beaconsfield | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Buckingham | Conservative | Conservative | Conservative$^1$ | Speaker (Con) | Speaker (Con) | Speaker (Con) | Conservative |
| Chesham and Amersham | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| North East Milton Keynes Milton Keynes North (from 2010) | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| Milton Keynes South West Milton Keynes South (from 2010) | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Wycombe | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
$^1$MP sat as Speaker from Jun 2009

#### East Sussex (8)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Bexhill and Battle | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Brighton Kemptown | Labour | Labour | Labour | Conservative | Conservative | Labour | Labour |
| Brighton Pavilion | Labour | Labour | Labour | Green | Green | Green | Green |
| Eastbourne | Conservative | Conservative | Conservative | Liberal Democrat | Conservative | Liberal Democrat | Conservative |
| Hastings and Rye | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Hove | Labour | Labour | Labour | Conservative | Labour | Labour | Labour |
| Lewes | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Wealden | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Hampshire (17 then 18)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Aldershot | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Basingstoke | Conservative | Conservative$^2$ | Conservative | Conservative | Conservative | Conservative | Conservative |
| East Hampshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Eastleigh | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Fareham | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Gosport | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Havant | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Meon Valley | | | | Conservative | Conservative | Conservative | Conservative |
| New Forest East | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| New Forest West | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| North East Hampshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| North West Hampshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Portsmouth North | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Portsmouth South | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat$^1$ | Conservative | Labour | Labour |
| Romsey Romsey and Southampton North (from 2010) | Conservative | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative | Conservative |
| Southampton Itchen | Labour | Labour | Labour | Labour | Conservative | Conservative | Conservative |
| Southampton Test | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Winchester | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative | Conservative |
$^1$MP sat as an independent from Jun 2013
$^2$MP sat as an independent from Oct 2002

#### Isle of Wight (1)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Isle of Wight | Liberal Democrat | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Kent (17)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Ashford | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Canterbury | Conservative | Conservative | Conservative | Conservative | Conservative | Labour | Labour |
| Chatham and Aylesford | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Dartford | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Dover | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Faversham and Mid Kent | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Folkestone and Hythe | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Gillingham / Gillingham and Rainham (from 2010) | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Gravesham | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| Maidstone and The Weald | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Medway / Rochester and Strood (from 2010) | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| North Thanet | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Sevenoaks | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Sittingbourne and Sheppey | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| South Thanet | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Tonbridge and Malling | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Tunbridge Wells | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Oxfordshire (6)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Banbury | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Henley | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Oxford East | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Oxford West and Abingdon | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Liberal Democrat | Liberal Democrat |
| Wantage | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Witney | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Surrey (11)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| East Surrey | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Epsom and Ewell | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Esher and Walton | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Guildford | Conservative | Liberal Democrat | Conservative | Conservative | Conservative | Conservative | Conservative |
| Mole Valley | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Reigate | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Runnymede and Weybridge | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| South West Surrey | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Spelthorne | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Surrey Heath | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Woking | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### West Sussex (8)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Arundel and South Downs | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Bognor Regis and Littlehampton | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Chichester | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Crawley | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| East Worthing and Shoreham | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Horsham | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Mid Sussex | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Worthing West | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

### South West England (51 then 55)
#### Avon (10 then 11)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Bath | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Liberal Democrat | Liberal Democrat |
| Bristol East | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Bristol North West | Labour | Labour | Labour | Conservative | Conservative | Labour | Labour |
| Bristol South | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Bristol West | Labour | Labour | Liberal Democrat | Liberal Democrat | Labour | Labour | Labour |
| Filton and Bradley Stoke | | | | Conservative | Conservative | Conservative | Conservative |
| Kingswood | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Northavon / Thornbury and Yate (from 2010) | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Wansdyke / North East Somerset (from 2010) | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Weston-Super-Mare | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative | Conservative | Conservative |
| Woodspring / North Somerset (from 2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Cornwall (5 then 6)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Falmouth and Camborne / Camborne and Redruth (from 2010) | Labour | Labour | Liberal Democrat | Conservative | Conservative | Conservative | Conservative |
| North Cornwall | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| St Ives | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| South East Cornwall | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative | Conservative |
| Truro and St Austell / St Austell and Newquay (from 2010) | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Truro and Falmouth | | | | Conservative | Conservative | Conservative | Conservative |

#### Devon (11 then 12)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Central Devon CC | | | | Conservative | Conservative | Conservative | Conservative |
| East Devon | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Exeter | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| North Devon | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Plymouth Devonport / Plymouth, Moor View (from 2010) | Labour | Labour | Labour | Labour | Conservative | Conservative | Conservative |
| Plymouth Sutton / Plymouth, Sutton and Devonport (from 2010) | Labour | Labour | Labour | Conservative | Conservative | Labour | Labour |
| South West Devon | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Teignbridge / Newton Abbot (from 2010) | Conservative | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative | Conservative |
| Tiverton and Honiton | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Torbay | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Torridge and West Devon | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative | Conservative | Conservative |
| Totnes | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Dorset (8)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Bournemouth East | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Bournemouth West | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Christchurch | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Mid Dorset and North Poole | Conservative | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| North Dorset | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Poole | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| South Dorset | Conservative | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| West Dorset | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Gloucestershire (6)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Cheltenham | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Cotswold The Cotswolds (from 2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Forest of Dean | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| Gloucester | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Stroud | Labour | Labour | Labour | Conservative | Conservative | Labour | Conservative |
| Tewkesbury | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### Somerset (5)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Bridgwater / Bridgwater and West Somerset | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Somerton and Frome | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Taunton / Taunton Deane (from 2010) | Liberal Democrat | Conservative | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Wells | Conservative | Conservative | Conservative | Liberal Democrat | Conservative | Conservative | Conservative |
| Yeovil | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |

#### Wiltshire (6 then 7)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Chippenham | | | | Liberal Democrat | Conservative | Conservative | Conservative |
| Devizes | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| North Swindon | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| North Wiltshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Salisbury | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| South Swindon | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Westbury South West Wiltshire (from 2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

### West Midlands (59)
#### Hereford and Worcester (8)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Bromsgrove | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Hereford Hereford and South Herefordshire (from 2010) | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative | Conservative |
| Leominster North Herefordshire (from 2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Mid Worcestershire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Redditch | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| West Worcestershire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Worcester | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Wyre Forest | Labour | Health Concern | Health Concern | Conservative | Conservative | Conservative | Conservative |

#### Shropshire (5)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Ludlow | Conservative | Liberal Democrat | Conservative | Conservative | Conservative | Conservative | Conservative |
| North Shropshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Shrewsbury and Atcham | Labour | Labour$^1$ | Conservative | Conservative | Conservative | Conservative | Conservative |
| Telford | Labour | Labour | Labour | Labour | Conservative | Conservative | Conservative |
| The Wrekin | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
$^1$MP defected to the Liberal Democrats shortly after election

#### Staffordshire (12)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Burton | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Cannock Chase | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Lichfield | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Newcastle-under-Lyme | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| South Staffordshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Stafford | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Staffordshire Moorlands | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Stoke-on-Trent Central | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Stoke-on-Trent North | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Stoke-on-Trent South | Labour | Labour | Labour | Labour | Labour | Conservative | Conservative |
| Stone | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Tamworth | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |

#### Warwickshire (5 then 6)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Kenilworth and Southam | | | | Conservative | Conservative | Conservative | Conservative |
| North Warwickshire | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Nuneaton | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Rugby and Kenilworth Rugby (from 2010) | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| Stratford-on-Avon | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Warwick and Leamington | Labour | Labour | Labour | Conservative | Conservative | Labour | Labour |

#### West Midlands (county) (29 then 28)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Aldridge-Brownhills | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Birmingham Edgbaston | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Birmingham Erdington | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Birmingham Hall Green | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Birmingham Hodge Hill | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Birmingham Ladywood | Labour | Labour | Labour$^1$ | Labour | Labour | Labour | Labour |
| Birmingham Northfield | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Birmingham Perry Barr | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Birmingham Selly Oak | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Birmingham Sparkbrook and Small Heath | Labour | Labour | Labour | | | | |
| Birmingham Yardley | Labour | Labour | Liberal Democrat | Liberal Democrat | Labour | Labour | Labour |
| Coventry North East | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Coventry North West | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Coventry South | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Dudley North | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Dudley South | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Halesowen and Rowley Regis | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Meriden | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Solihull | Conservative | Conservative | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Stourbridge | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Sutton Coldfield | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Walsall North | Labour | Labour | Labour | Labour | Labour | Conservative | Conservative |
| Walsall South | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Warley | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| West Bromwich East | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| West Bromwich West | Speaker (Lab) | Labour | Labour | Labour | Labour | Labour | Conservative |
| Wolverhampton North East | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Wolverhampton South East | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Wolverhampton South West | Labour | Labour | Labour | Conservative | Labour | Labour | Conservative |
$^1$MP sat as Independent Labour from Oct 2006

### Yorkshire and the Humber (56 then 54)
#### Humberside (10)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Beverley and Holderness | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Brigg and Goole | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Cleethorpes | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| East Yorkshire | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Great Grimsby | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Haltemprice and Howden | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Kingston upon Hull East | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Kingston upon Hull North | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Kingston upon Hull West and Hessle | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Scunthorpe | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |

#### North Yorkshire (8)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| City of York York Central (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Harrogate and Knaresborough | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative | Conservative |
| Richmond (Yorks) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Ryedale Thirsk and Malton (from 2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Scarborough and Whitby | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| Selby Selby and Ainsty (from 2010) | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Skipton and Ripon | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |
| Vale of York / York Outer (2010) | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative | Conservative |

#### South Yorkshire (15 then 14)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Barnsley Central | Labour | Labour | Labour | Labour$^1$ | Labour | Labour | Labour |
| Barnsley East and Mexborough Barnsley East (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Barnsley West and Penistone Penistone and Stocksbridge (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Don Valley | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Doncaster Central | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Doncaster North | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Rother Valley | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Rotherham | Labour | Labour | Labour | Labour$^2$ | Labour | Labour | Labour |
| Sheffield Attercliffe Sheffield South East (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Sheffield Brightside Sheffield Brightside and Hillsborough (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Sheffield Central | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Sheffield Hallam | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Labour | Labour |
| Sheffield Heeley | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Sheffield Hillsborough | Labour | Labour | Labour | | | | |
| Wentworth Wentworth and Dearne (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
$^1$MP sat as an independent May 2010 - Feb 2011
$^2$MP sat as an independent Oct 2010 - Jul 2012

#### West Yorkshire (23 then 22)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Batley and Spen | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Bradford North Bradford East (from 2010) | Labour | Labour | Labour | Liberal Democrat | Labour | Labour | Labour |
| Bradford South | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Bradford West | Labour | Labour | Labour | Labour$^1$ | Labour | Labour | Labour |
| Calder Valley | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Colne Valley | Labour | Labour | Labour | Conservative | Conservative | Labour | Conservative |
| Dewsbury | Labour | Labour | Labour | Conservative | Labour | Labour | Conservative |
| Elmet Elmet and Rothwell (from 2010) | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Halifax | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Hemsworth | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Huddersfield | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Keighley | Labour | Labour | Labour | Conservative | Conservative | Labour | Conservative |
| Leeds Central | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Leeds East | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Leeds North East | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Leeds North West | Labour | Labour | Liberal Democrat | Liberal Democrat | Liberal Democrat | Labour | Labour |
| Leeds West | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Morley and Rothwell Morley and Outwood (from 2010) | Labour | Labour | Labour | Labour | Conservative | Conservative | Conservative |
| Normanton | Labour | Labour | Labour | | | | |
| Pontefract and Castleford Normanton, Pontefract and Castleford (from 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Pudsey | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Shipley | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| Wakefield | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
$^1$seat won by Respect in a 2012 by-election

## Northern Ireland (18)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Belfast East | Democratic Unionist | Democratic Unionist | Democratic Unionist | Alliance | Democratic Unionist | Democratic Unionist | Democratic Unionist |
| Belfast North | Ulster Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Sinn Féin |
| Belfast South | Ulster Unionist | Ulster Unionist$^1$ | SDLP | SDLP | SDLP | Democratic Unionist | SDLP |
| Belfast West | Sinn Féin | Sinn Féin | Sinn Féin | Sinn Féin | Sinn Féin | Sinn Féin | Sinn Féin |
| East Antrim | Ulster Unionist | Ulster Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist |
| East Londonderry | Ulster Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist |
| Fermanagh & South Tyrone | Ulster Unionist | Sinn Féin | Sinn Féin | Sinn Féin | Ulster Unionist | Sinn Féin | Sinn Féin |
| Foyle | SDLP | SDLP | SDLP | SDLP | SDLP | Sinn Féin | SDLP |
| Lagan Valley | Ulster Unionist | Ulster Unionist$^3$ | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist |
| Mid Ulster | Sinn Féin | Sinn Féin | Sinn Féin | Sinn Féin | Sinn Féin | Sinn Féin | Sinn Féin |
| Newry & Armagh | SDLP | SDLP | Sinn Féin | Sinn Féin | Sinn Féin | Sinn Féin | Sinn Féin |
| North Antrim | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist |
| North Down | UK Unionist | Ulster Unionist | Ulster Unionist | Independent | Independent | Independent | Alliance |
| South Antrim | Ulster Unionist | Ulster Unionist$^2$ | Democratic Unionist | Democratic Unionist | Ulster Unionist | Democratic Unionist | Democratic Unionist |
| South Down | SDLP | SDLP | SDLP | SDLP | SDLP | Sinn Féin | Sinn Féin |
| Strangford | Ulster Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist |
| Upper Bann | Ulster Unionist | Ulster Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist | Democratic Unionist |
| West Tyrone | Ulster Unionist | Sinn Féin | Sinn Féin | Sinn Féin | Sinn Féin | Sinn Féin | Sinn Féin |
$^1$MP sat as an independent from Jun 2003 - Jan 2004
$^2$MP sat as an independent from Jun 2003 - Jan 2004
$^3$MP sat as an independent from Jun 2003 and defected to the Democratic Unionists in Jan 2004

## Scotland

The Fifth Periodical Review of the Boundary Commission for Scotland related the boundaries of new constituencies to those of Scottish local government council areas and to local government wards. Apart from a few minor adjustments, the council area boundaries dated from 1996 and the ward boundaries dated from 1999. Some council areas were grouped to form larger areas and, within these larger areas, some constituencies straddle council area boundaries.

### Dumfries and Galloway (2 then 1)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Dumfriesshire | Labour | Labour | | | | | |
| Galloway and Upper Nithsdale Dumfries and Galloway (from 2005) | SNP | Conservative | Labour | Labour | SNP | Conservative | Conservative |

### Scottish Borders (2)

| Constituency | | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Roxburgh and Berwickshire Berwickshire, Roxburgh and Selkirk (from 2005) | | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | SNP | Conservative | Conservative |
| Dumfriesshire, Clydesdale and Tweeddale | partially in Borders and Strathclyde | | | Conservative | Conservative | Conservative | Conservative | Conservative |
| Tweeddale, Ettrick and Lauderdale | partially in Lothian 1997–2005 | Liberal Democrat | Liberal Democrat | | | | | |

### Lothian (10 then 9)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Edinburgh Central | Labour | Labour | | | | | |
| Edinburgh East and Musselburgh Edinburgh East (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Edinburgh North and Leith | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Edinburgh Pentlands Edinburgh South West (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Edinburgh South | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Edinburgh West | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | SNP$^1$ | Liberal Democrat | Liberal Democrat |
| East Lothian | Labour | Labour | Labour | Labour | SNP | Labour | SNP |
| Linlithgow Linlithgow and East Falkirk (partially in Central, 2005-) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Livingston | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Midlothian | Labour | Labour | Labour | Labour | SNP | Labour | SNP |
$^1$MP sat as an independent from Sep 2015

### Strathclyde (32 then 25)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Airdrie and Shotts | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Argyll and Bute | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | SNP | SNP | SNP |
| Ayr | Labour | Labour | | | | | |
| Carrick, Cumnock and Doon Valley Ayr, Carrick and Cumnock (from 2005) | Labour | Labour | Labour | Labour | SNP | Conservative | SNP |
| Clydebank and Milngavie | Labour | Labour | | | | | |
| Clydesdale Lanark and Hamilton East (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Coatbridge and Chryston Coatbridge, Chryston and Bellshill (from 2005) | Labour | Labour | Labour | Labour | SNP | Labour | SNP |
| Cumbernauld and Kilsyth Cumbernauld, Kilsyth and Kirkintilloch East (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Cunninghame North North Ayrshire and Arran (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Cunninghame South Central Ayrshire (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Dumbarton West Dunbartonshire (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| East Kilbride East Kilbride, Strathaven & Lesmahagow (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Eastwood East Renfrewshire (from 2005) | Labour | Labour | Labour | Labour | SNP | Conservative | SNP |
| Glasgow Anniesland Glasgow North West (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Glasgow Baillieston Glasgow East (from 2005) | Labour | Labour | Labour$^2$ | Labour | SNP$^1$ | SNP | SNP |
| Glasgow Cathcart Glasgow South (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Glasgow Central | | | Labour | Labour | SNP | SNP | SNP |
| Glasgow Govan | Labour | Labour | | | | | |
| Glasgow Kelvin | Labour | Labour$^4$ | | | | | |
| Glasgow Maryhill Glasgow North (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Glasgow Pollok Glasgow South West (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Glasgow Rutherglen Rutherglen and Hamilton West (from 2005) | Labour | Labour | Labour | Labour | SNP | Labour | SNP |
| Glasgow Shettleston | Labour | Labour | | | | | |
| Glasgow Springburn Glasgow North East (from 2005) | Labour | Speaker (Labour) | Speaker (Labour)$^3$ | Labour | SNP | Labour | SNP |
| Greenock and Inverclyde Inverclyde (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Hamilton North and Bellshill | Labour | Labour | | | | | |
| Hamilton South | Labour | Labour | | | | | |
| Kilmarnock and Loudoun | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Motherwell and Wishaw | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Paisley North Paisley and Renfrewshire North (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Paisley South Paisley and Renfrewshire South (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Strathkelvin and Bearsden East Dunbartonshire (from 2005) | Labour | Labour | Liberal Democrat | Liberal Democrat | SNP | Liberal Democrat | SNP |
| West Renfrewshire | Labour | Labour | | | | | |
$^1$MP sat as an independent from Nov 2015
$^2$seat gained by the SNP in a Jul 2008 by-election
$^3$seat gained by Labour in a Nov 2009 by-election
$^4$MP defected to the Respect Party in Jan 2004

### Tayside (6 then 7)

| Constituency | | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Angus | | SNP | SNP | SNP | SNP | SNP | Conservative | SNP |
| Dundee East | | Labour | Labour | SNP | SNP | SNP | SNP | SNP |
| Dundee West | | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| North Tayside Perth and North Perthshire (from 2005) | | SNP | SNP | SNP | SNP | SNP | SNP | SNP |
| Ochil and South Perthshire | partially in Central 2005- | | | Labour | Labour | SNP | Conservative | SNP |
| Perth | | SNP | SNP | | | | | |

### Central (4 then 2)

| Constituency | | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Falkirk East | | Labour | Labour | | | | | |
| Falkirk West Falkirk (from 2005) | | Labour | Labour | Labour | Labour$^1$ | SNP | SNP | SNP |
| Ochil | partially in Tayside 1997–2005 | Labour | Labour | | | | | |
| Stirling | | Labour | Labour | Labour | Labour | SNP | Conservative | SNP |
$^1$MP sat as an independent from Feb 2012

### Fife (5 then 4)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Central Fife Glenrothes (from 2005) | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Dunfermline East | Labour | Labour | | | | | |
| Dunfermline West Dunfermline and West Fife (from 2005) | Labour | Labour | Labour$^1$ | Labour | SNP | SNP | SNP |
| Kirkcaldy Kirkcaldy and Cowdenbeath (from 2005) | Labour | Labour | Labour | Labour | SNP | Labour | SNP |
| North East Fife | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | SNP | SNP | Liberal Democrat |
$^1$seat gained by the Liberal Democrats in a Feb 2006 by-election

### Grampian (7 then 6)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Aberdeen Central | Labour | Labour | | | | | |
| Aberdeen North | Labour | Labour | Labour | Labour | SNP | SNP | SNP |
| Aberdeen South | Labour | Labour | Labour | Labour | SNP | Conservative | SNP |
| Banff and Buchan | SNP | SNP | SNP | SNP | SNP | Conservative | Conservative |
| Gordon | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | SNP | Conservative | SNP |
| Moray | SNP | SNP | SNP | SNP | SNP | Conservative | Conservative |
| West Aberdeenshire and Kincardine | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | SNP | Conservative | Conservative |

### Highland (5)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Caithness, Sutherland and Easter Ross | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | SNP | Liberal Democrat | Liberal Democrat |
| Inverness East, Nairn and Lochaber Inverness, Nairn, Badenoch and Strathspey (from 2005) | Labour | Labour | Liberal Democrat | Liberal Democrat | SNP | SNP | SNP |
| Na h-Eileanan an Iar | Labour | Labour | SNP | SNP | SNP | SNP | SNP |
| Orkney and Shetland | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat |
| Ross, Skye and Inverness West Ross, Skye and Lochaber (from 2005) | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | SNP | SNP | SNP |

## Wales (40)
### Gwynedd (4 then 3)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Caernarfon Arfon (from 2010) | Plaid Cymru | Plaid Cymru | Plaid Cymru | Plaid Cymru | Plaid Cymru | Plaid Cymru | Plaid Cymru |
| Conwy (partially in Clwyd 2003–2010) | Labour | Labour | Labour | | | | |
| Meirionnydd Nant Conwy (partially in Clwyd 2003–2010) Dwyfor Meirionnydd (from 2010) | Plaid Cymru | Plaid Cymru | Plaid Cymru | Plaid Cymru | Plaid Cymru | Plaid Cymru | Plaid Cymru |
| Ynys Môn | Plaid Cymru | Labour | Labour | Labour | Labour | Labour | Conservative |
Votes:
* Party
* Labour
* Conservative
* Liberal Democrat
* Plaid Cymru
* UKIP
* Green

### Clwyd (6 then 7)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Aberconwy | | | | Conservative | Conservative | Conservative | Conservative |
| Alyn and Deeside | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Clwyd South (partially in Powys until 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Clwyd West | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| Delyn | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Vale of Clwyd | Labour | Labour | Labour | Labour | Conservative | Labour | Conservative |
| Wrexham | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
In 2003 the border between Gwynedd and Clwyd was shifted. Conwy and Meirionydd Nant Conwy went from being entirely within Gwynedd to being split between Gwynedd and Clwyd.

### Dyfed (5)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Carmarthen East and Dinefwr | Labour | Plaid Cymru | Plaid Cymru | Plaid Cymru | Plaid Cymru | Plaid Cymru | Plaid Cymru |
| Carmarthen West and South Pembrokeshire | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |
| Ceredigion | Plaid Cymru | Plaid Cymru | Liberal Democrat | Liberal Democrat | Liberal Democrat | Plaid Cymru | Plaid Cymru |
| Llanelli | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Preseli Pembrokeshire | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
Votes:
| Party | 1997 | 2001 | 2005 | 2010 | 2015 |
| Labour | 92,958 | 67,289 | 59,224 | 53,756 | 52,090 |
| Conservative | 39,084 | 38,155 | 40,683 | 51,901 | 52,002 |
| Liberal Democrat | 22,597 | 22,307 | 31,761 | 38,299 | 16,836 |
| Plaid Cymru | 47,082 | 52,105 | 50,164 | 43,462 | 41,059 |
| UKIP | | | | | 23,416 |
| Green | | | | | 6,610 |

### Powys (2)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Brecon and Radnorshire | Liberal Democrat | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative |
| Montgomeryshire | Liberal Democrat | Liberal Democrat | Liberal Democrat | Conservative | Conservative | Conservative | Conservative |

### West Glamorgan (5)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Aberavon | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Gower | Labour | Labour | Labour | Labour | Conservative | Labour | Labour |
| Neath | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Swansea East | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Swansea West | Labour | Labour | Labour | Labour | Labour | Labour | Labour |

### Mid Glamorgan (6)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Bridgend (partly in South Glamorgan until 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Conservative |
| Cynon Valley | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Merthyr Tydfil and Rhymney (partly in Gwent) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Ogmore | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Pontypridd (partly in South Glamorgan until 2010) | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Rhondda | Labour | Labour | Labour | Labour | Labour | Labour | Labour |

### South Glamorgan (5)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Cardiff Central | Labour | Labour | Liberal Democrat | Liberal Democrat | Labour | Labour | Labour |
| Cardiff North | Labour | Labour | Labour | Conservative | Conservative | Labour | Labour |
| Cardiff South and Penarth | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Cardiff West | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Vale of Glamorgan | Labour | Labour | Labour | Conservative | Conservative | Conservative | Conservative |

### Gwent (7)

| Constituency | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Blaenau Gwent | Labour | Labour | Independent | Labour | Labour | Labour | Labour |
| Caerphilly | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Islwyn | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Monmouth | Labour | Labour | Conservative | Conservative | Conservative | Conservative | Conservative |
| Newport East | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Newport West | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
| Torfaen | Labour | Labour | Labour | Labour | Labour | Labour | Labour |
Seats:
| Party | 1997 | 2001 | 2005 | 2010 | 2015 | 2017 | 2019 |
| Labour | 34 | 34 | 29 | 26 | 25 | 28 | 22 |
| Conservative | | | 3 | 8 | 11 | 8 | 14 |
| Liberal Democrat | 2 | 2 | 4 | 3 | 1 | | |
| Plaid Cymru | 4 | 4 | 3 | 3 | 3 | 4 | 4 |
| Independent | | | 1 | | | | |