transposición de matriz de python y zip

Cómo obtener la transposición de esta matriz … Cualquier forma más sencilla y algorítmica de hacer esto …

1a pregunta:

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

Segunda pregunta:

Zip me da la siguiente salida que se indica a continuación, ¿cómo puedo comprimir cuando no sé cuántos elementos hay en la matriz, en este caso, conozco 3 elementos a [0], a [1], a [2] pero cómo puedo Zip A [n] elementos

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

respuestas a preguntas:

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

gracias a afg por ayudar

Utilice zip(*a) :

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

Cómo funciona: zip (* a) es igual a zip (a [0], a [1], a [2]).

Puedes usar 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]])