Python | Matrix of non-standard length

Method # 1: Using zip () + comprehension list
The zip function, combined with list comprehension, can help accomplish this particular task. The zip function can help compress a list of counters with a list of elements, and a list comprehension does the job of building the matrix.

# Python3 demo code
Custom length matrix
# using zip () + list comprehension

 
# initializing list

test_list = [ `a` , `b` , ` c` ]

 
# initializing the counter list

counter_list = [ 1 , 4 , 2 ]

 
# print original list

print ( "The original list is:" + str (test_list))

 
# print a list of counters

print ( "The counter list is:" + str (counter_list))

 
# using zip () + mon Name of the list
Custom length matrix

res = [[i] * j for i, j in zip (test_list, counter_list)]

 
# print result

print ( " The custom length matrix is: " + str (res ))

Output:

 The original list is: [`a`,` b`, `c`] The counter list is: [1, 4, 2] The custom length matrix is: [[` a`], [`b`,` b` , `b`,` b`], [`c`,` c`]] 

Method # 2: Using the map () + mul operator
This particular problem can also be solved with the built-in mul operator, which multiplies the index elements you like, and the map function does the job forming a matrix.

# Python3 demo code
Custom length matrix
# using map () + mul operator

from operator import mul

 
# initializing list

test_list = [ `a` , `b` , ` c` ]

 
# initializing the list of counters

counter_list = [ 1 , 4 , 2 ]

 
# printing the original list

print ( "The original list is: " + str (test_list))

 
# print counter list

print ( "The counter list is:" + str (counter_list))

  
# using map () + mul operator
Custom length matrix

res = list ( map (mul, [[ ` a` ], [ `b` ], [ ` c` ]], counter_list))

 
# print result

print ( "The custom length matrix is: " + str (res))

Output:

 The original list is: [`a`,` b` , `c`] The counter list is: [1, 4, 2] The custom length matrix is: [[` a`], [`b`,` b`, `b`,` b`], [` c`, `c`]]