Posted By: Anonymous
I’m beginning python and I’m trying to use a two-dimensional list, that I initially fill up with the same variable in every place. I came up with this:
def initialize_twodlist(foo): twod_list =  new =  for i in range (0, 10): for j in range (0, 10): new.append(foo) twod_list.append(new) new = 
It gives the desired result, but feels like a workaround. Is there an easier/shorter/more elegant way to do this?
A pattern that often came up in Python was
bar =  for item in some_iterable: bar.append(SOME EXPRESSION)
which helped motivate the introduction of list comprehensions, which convert that snippet to
bar = [SOME EXPRESSION for item in some_iterable]
which is shorter and sometimes clearer. Usually you get in the habit of recognizing these and often replacing loops with comprehensions.
Your code follows this pattern twice
twod_list =  for i in range (0, 10): new =  can be replaced } this too for j in range (0, 10): } with a list / new.append(foo) / comprehension / twod_list.append(new) /