i want to create a matrix of multiplication tables
<p>i want to  create a matrix of first 12 multiplication tables .</p>

<p>my code so far is:</p>

<pre><code>x = range(1,13,1)
n = range(1,13,1)

list_to_append = []
list_for_matrix = []

for i in x:

    for j in n:

        list_to_append.append(i*j)

list_for_matrix.append(list_to_append[0:12])
list_for_matrix.append(list_to_append[12:24])
list_for_matrix.append(list_to_append[24:36])


print (list_to_append)
print (list_for_matrix)
</code></pre>

<p>the output i got is:</p>

<pre><code>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144]
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24], [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36]]
</code></pre>

<p>In my for loop, when <code>i=1</code> and <code>j = range(1,12,1)</code> , i want the output <code>(i*j)</code> as a list like <code>[1,2,3,4,5,6,7,8,9,10,11,12]</code> and this should happen for every iteration. finally , i want to append the above list to an empty list like
    <code>[[1,2,3,4,5,6,7,8,9,,10,11,12]]</code>.so ,in my code , i can't do slicing for 12 multiplication tables. is there any better way to do it?</p>

<p>You can use the following <em>list comprehension</em>:</p>

<pre><code>x = range(1,13) # default step value is 1, no need to specify
n = range(1,13)

mult_table = [[i*j for j in x] for i in n]
</code></pre>

<hr>

<p>Output:</p>

<pre><code>print(mult_table)
# [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
#  [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24],
#  [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36],
#  [4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48],
#  [5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60],
#  [6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72],
#  [7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84],
#  [8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96],
#  [9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108],
#  [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120],
#  [11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132],
#  [12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144]]
</code></pre>

<p>Notice the <em>nested comprehension</em> from which the values of the other dimension are generated and are multiplied with those of the first.</p>

python python-2.7 python-3.x ipython