I'd like to access a nested dictionary, both levels indexed by fo.galaxySetupOptionGeneric (low, medium, high). Like this:
Code: Select all
age_to_density_factor = {
# Low density Medium density High density
# Young galaxy:
fo.galaxySetupOptionGeneric.low: {fo.galaxySetupOptionGeneric.low: 0.54, fo.galaxySetupOptionGeneric.medium: 0.79, fo.galaxySetupOptionGeneric.high: 1.32},
# Mature galaxy:
fo.galaxySetupOptionGeneric.medium: {fo.galaxySetupOptionGeneric.low: 0.78, fo.galaxySetupOptionGeneric.medium: 1.17, fo.galaxySetupOptionGeneric.high: 1.95},
# Ancient galaxy:
fo.galaxySetupOptionGeneric.high: {fo.galaxySetupOptionGeneric.low: 0.92, fo.galaxySetupOptionGeneric.medium: 1.46, fo.galaxySetupOptionGeneric.high: 2.42},
}
num_planets_in_galaxy = galaxy_size * age_to_density_factor[galaxy_age][planet_density]
Maybe I should be doing something totally different, like using tuples of galaxySetupOptionGeneric to index a simple dictionary?
Code: Select all
age_to_density_factor = {
# Young Low:
fo.galaxySetupOptionGeneric.low, fo.galaxySetupOptionGeneric.low: 0.54,
fo.galaxySetupOptionGeneric.low, fo.galaxySetupOptionGeneric.medium: 0.79,
fo.galaxySetupOptionGeneric.low, fo.galaxySetupOptionGeneric.high: 1.32,
# Mature:
fo.galaxySetupOptionGeneric.medium, fo.galaxySetupOptionGeneric.low: 0.78,
fo.galaxySetupOptionGeneric.medium, fo.galaxySetupOptionGeneric.medium: 1.17,
fo.galaxySetupOptionGeneric.medium, fo.galaxySetupOptionGeneric.high: 1.95,
# Ancient:
fo.galaxySetupOptionGeneric.high, fo.galaxySetupOptionGeneric.low: 0.92,
fo.galaxySetupOptionGeneric.high, fo.galaxySetupOptionGeneric.medium: 1.46,
fo.galaxySetupOptionGeneric.high, fo.galaxySetupOptionGeneric.high: 2.42,
}
num_planets_in_galaxy = galaxy_size * age_to_density_factor[galaxy_age, planet_density]
It seems I'm not making the right questions to Google when searching for an answer.
Can anyone help me? Vezzra or o01eg maybe?
I'm tempted to use an ugly if-then block of code...