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)                           / 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With