# Lists

## Gather all the Data¶

Lets do some statistics! To collect a bundle of values we do not need individual variables. While a tuple already has a fixed size upon creation, we can use a list instead, since it can become larger and smaller as we go along.

We can gather the data in a list while doing the simulation in `__main__.py` and evaluate it later.

``````…

# Add the initial population to our data
population_over_time = [starting_population]

for current_day in range(START_DAY, START_DAY + simulation_duration):
…

(current_population, current_food) = simulate_day(current_population, current_food)

…

# Feed the aliens between the days
current_food = current_food + food_per_day

# Note down the population at the end of the day
population_over_time.append(current_population)

# After the loop print all the gathered data as a summary
print("Population over time:", population_over_time)
``````

You can access the elements of a list via an index, as with tuples. Also, lists can be used as a data source in `for`-loops, like a `range(…)`.

## A basic Evaluation¶

There are some nice built-in functions that we can use for some basic statistics. Many of those accept a list as input.

``````# Calculate some statistical values
gathered_values = len(population_over_time)  # Counts the elements in a list
lowest_population = min(population_over_time)
highest_population = max(population_over_time)
average_population = sum(population_over_time) / gathered_values

print("We gathered", gathered_values, "data points")
print("Minimum:", lowest_population, "individuals")
print("Maximum:", highest_population, "individuals")
print("Average:", average_population, "individuals")
``````

Key Points

• Lists can bundle up multiple values
• The size of a list is not fixed and may change as the program progresses
• Indexes are numeric values that can access individual elements
Code Checkpoint

This is the code that we have so far:

• 📁 `alien_growth_model`

Hands-on

Now that you have a lot of tools at your disposal, how about tackeling some more challenging problems?