# String argument -> name of list?

Gustaf Liljegren gustafl at algonet.se
Sat Nov 3 17:56:32 CET 2001

```I'm making a program for training musical scales. It should for example be
able to ask things like: "What is the name of the sixth chord in the F#
Phrygian scale?".

I have a list of scale names that looks like this:

# Scale names
scales = [
'ionian',
'dorian',
'phrygian',
'lydian',
'mixolydian',
'aeolian',
'locrian'
]

There's also a list for each of these scales, so that the program can
calculate how a scale looks, based on the chromatic scale and a root key.

# Modal scale structures
ionian     = [0, 2, 2, 1, 2, 2, 2]
dorian     = [0, 2, 1, 2, 2, 2, 1]
phrygian   = [0, 1, 2, 2, 2, 1, 2]
lydian     = [0, 2, 2, 2, 1, 2, 2]
mixolydian = [0, 2, 2, 1, 2, 2, 1]
aeolian    = [0, 2, 1, 2, 2, 1, 2]
locrian    = [0, 1, 2, 2, 1, 2, 2]

The program chooses one of the scales randomly, so I may get for example
the string 'dorian' in one session and the string 'locrian' in the next.

Finally, there's a function that should take any of the lists of scale
structures as an argument. Or perhaps it's better if it takes a string
value, but it's currently taking the list. Anyway I choose, the problem is
to make the conversion from a string ('ionian') to the list name (ionian)
to get the scale structure.

I wonder if it is any simple syntax for converting a string to the name of
a list? Or should I use another structure instead, like a dictionary with
strings + lists, or a list with strings + lists?

Gustaf

```