This is probably straying a bit far from the theme of this thread, but yes, I like Python, though in the current cases the choice is driven by necessity: the coursework MUST be written in Python, for marking reasons.
I agree the use of white space to define block structure is unusual and occasionally annoying, but with modern IDEs most of that is taken care of for you. One of the things I like most about it is the flexible lists, and the slicing functions that go with them. When used to construct multi-dimensional "arrays", it allows some incredibly sophisticated and concise ways of doing things - almost like database functions. The use of iterators (for example, to do everything using each member of a list/dictionary/set etc) is very powerful, and once you get used to it, intuitive. It also tends to be very fast compared to conventional looping - presumably because it is implemented behind the scenes in C (similar to your BBC BASIC array operations?). One advantage is that lists can contain mixed-type elements, so they integrate many of the advantages of your structures, but in a simpler way (albeit the programmer is responsible for knowing what is where!).
One are where I think BBC BASIC has a huge advantage is in its built-in graphical abilities - just doing a "quick and dirty" look at something, or building anything like a GUI is easier in BB4W. Having said that, Python has libraries that make some things very easy: add "import matplotlib.pyplot as plt" at the beginning of your code, and plotting a graph is as easy as adding "plt.plot(data)", or "plt.scatter(x_series,yseries)"!
As for cross-platform compatibility, most things (other than native-looking GUIs) will run "out of the box" as long as a standard python implementation is installed (like anaconda3) - this will automatically include the common libraries, and it is easy to set up virtual environments to include more specialised ones - the provision of a "requirements.txt" file allows this to be set up essentially automatically. Making a stand-alone application is harder, and much bigger, than the equivalent in BB4W, though - more like making one for Android, in that a separate application is required to do it. I would consider that a big plus for BBC BASIC (for me, esp. BB4W, though that probably reflects my lack of experience with BBC-SDL).
You are right that Python, as an interpreted language, is relatively slow, if you do everything yourself in Python- but (like BBC BASIC libraries with assembler) using libraries often means things are much faster, since they provide a wrapper onto underlying, and very fast, C code). Things like handling big data structures with PANDAS or numpy, and plotting with matplotlib, are really VERY fast - it will handle complex data structures with thousands or millions of lines of data, and do operations on all of them, apparently "instantaneously" - though obviously if you nest things deep enough it all slows down!
Having said all that, if I want a first look at a problem, or to make a game, BBC BASIC is almost invariably my first choice!

D
PS I started working on (BBC) code for this problem - I'll post it when it's done. Would you be interested if I posted a Python equivalent, for comparison, or is that stretching the point of the forum too much?