I'm analyzing some Python code and I don't know what
pop = population[:]
It's a slicing, and what it does depends on the type of
population is a list, this line will create a copy of the list. For an object of type
tuple or a
str, it will do nothing (the line will do the same without
[:]), and for a (say) NumPy array, it will create a new view to the same data.