Main Content

Football league tables - under old and new point system. Python program.

Archive - Originally posted on "The Horse's Mouth" - 2011-12-18 07:29:30 - Graham Ellis

In 1981, football scoring for the top divisions of the league changed from 2 points for a win to 3 points for a win in the 1981 season [ref]. This was done to encourage positive play, and discourage boring defensive games played for a goalless draw.

How much difference would it make if the old scoring system was still in place today? What would the league table look like today if this season was being scored on 2 points for a win and 1 for a draw?

When I was training in Python last week, I wrote a script to take the current season's results to date, and re-rank them. And it's quite surprising how few changes resulted. Only in mid-table does it make a difference. Here's the table with comparative points:

  Manchester City 38 26
  Manchester United 36 25
  Chelsea 31 21
  Tottenham Hotspur 31 21
  Arsenal 29 20
  Liverpool 26 19
  Newcastle United 26 19
  Stoke City 21 15
  Aston Villa 19 15
  Norwich City 19 14
  Swansea City 17 13
  Everton 16 11
  Queens Park Rangers 16 12
  Fulham 15 12
  West Bromwich Albion 15 11
  Sunderland 14 11
  Wolverhampton Wanderers 14 10
  Wigan Athletic 12 9
  Blackburn Rovers 10 8
  Bolton Wanderers 9 6


The first column of values is current points; the second is "2 per win" points. Yes - it's all very much lower numbers in the second column - but then this is a ranking system, so it's the order not the magnitude that matters. Only from Everton (16 or 11 points) to Sunderland (14 or 11 points) has there been any change. Here's the oldstyle ranking table:

  Manchester City 26
  Manchester United 25
  Tottenham Hotspur 21
  Chelsea 21
  Arsenal 20
  Liverpool 19
  Newcastle United 19
  Aston Villa 15
  Stoke City 15
  Norwich City 14
  Swansea City 13
  Fulham 12
  Queens Park Rangers 12
  Sunderland 11
  West Bromwich Albion 11
  Everton 11
  Wolverhampton Wanderers 10
  Wigan Athletic 9
  Blackburn Rovers 8
  Bolton Wanderers 6


Whether we're analysing soccer league tables, web site arrivals, or streams of DNA bases, Python is a powerful and quick tool. The program I wrote that produces the above alternative table may be found [here], and the data can be seen [here]. There's a downloadable copy of the data [here]. Please don't cut and paste from the other display, as you'll mix up tabs and spaces. You can also grab a (current) set of tables from football.co.uk.

The Python source code for an exercise like this turned out to be less that 2000 characters ... and most of those are comments which are purely to help the reader / anyone who's going to change the program later see what it does. While teaching Python on the < href=http://www.wellho.net/course/python.html>Python Progamming Course, we wrote this example and then tried other scoring systems too - such as 2 points for an away draw, 1 for a home draw, and 3 points for a win. And we saw some very interesting changes.

If you want to learn Python, or another programming language, we've plenty of courses next year. Our web site lists future public courses, and if we're not training a public course we're available for private (single company) courses. We can run private courses at your office or private courses at our training centre, tailored to suit your exact needs.