Question: I have several transportation brands, for each one I would like to specify all the available
 models as well as the default model. 

So I first defined tuples this way:

```
SUZUKI = ('model_1', 'model_2', 'model_3')
FERRARI = ('model_1', 'model_2')
# etc

```

I would like to specify a default model for each brand. The thing is that with so many brands,
it would be tedious to define a default variable for each one of them:

```
SUZUKI_DEFAULT = 'model_1'
FERRARI_DEFAULT = 'model_2'
# etc

```

and so on. So I wonder what would be a good, not too shabby solution to tackle this issue.
Creating a class for each brand may be a waste of ressource as I don't need more 
additional parameters nor functions.

I thought of doing something like this, putting the default value at the end of the tuples, 
then specifying the position of the default value:

```
DEFAULT_POSITION = -1
SUZUKI = ('model_1', 'model_2', 'model_3', 'model_1')
FERRARI = ('model_1', 'model_2', 'default_model')
PORSCH = ('model_1', 'model_2', None)
# etc

```

I would then make a check statement such as:

```
if arg not in SUZUKI:
    arg = SUZUKI[DEFAULT_POSITION]

```

My question is, is that a bad practice, are there other solutions around, if not better?

Answer: 
Why not using a dictionary, seems to me like the better way to go. The code itself will get more understandable and easier.

```
brands = {'Suzuki':['model_1', 'model_2'], 'Ferrari':['model_1', 'model_2']}

```

And then just call them normally:

```
brands['Suzuki']

```

Outputs:

```
['model_1', 'model_2']

```
You could make a class:

```
class Brand(object):
    def __init__(*models, default=None):
        self.models = *models
        self.default = default
        assert default is None or default in models

```

Then use it:

```
SUZUKI = Brand('model_1', 'model_2', 'model_3', default='model_1')
FERRARI = Brand('model_1', 'model_2', default='model_2')
PORSCH = Brand('model_1', 'model_2', default=None)

```