Transposed python and zip matrix

How to get the transpose of this matrix ... Any simple algorithmic way to do this ...

1st question:

Input a=[[1,2,3],[4,5,6],[7,8,9]] Expected output a=[[1, 4, 7], [2, 5, 8], [3, 6, 9]] 

Second question:

Zip gives me the following result, listed below: how can I zip when I do not know how many elements are in the array, in this case I know 3 elements a [0], a [1], a [2] but how can I fix elements [n]

  >>> zip(a[0],a[1],a[2]) [(1, 4, 7), (2, 5, 8), (3, 6, 9)] 
+9
source share
4 answers

answers on questions:

 >>> import numpy as np >>> first_answer = np.transpose(a) >>> second_answer = [list(i) for i in zip(*a)] 

thanks afg for help

+14
source

Use zip(*a) :

 >>> zip(*a) [(1, 4, 7), (2, 5, 8), (3, 6, 9)] 

How it works: zip (* a) is equal to zip (a [0], a [1], a [2]).

+17
source

You can use numpy.transpose

numpy.transpose

 >>> import numpy >>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] >>> numpy.transpose(a) array([[1, 4, 7], [2, 5, 8], [3, 6, 9]]) 
+3
source

The solution is to use the tuple() function.

Here is an example of how to do this in your case:

 a = [[1,2,3],[4,5,6],[7,8,9]] output = tuple(zip(*a)) print(output) 
0
source

Source: https://habr.com/ru/post/913299/


All Articles