input: Write a function to optimize a Python program that processes a 2d array and stores the transpose output in a new array. The function should return the transposed array.
  def transpose(A):
   n = len(A)
   m = len(A[0])
  
   B = [[0 for x in range(n)] for x in range(m)]
  
   for i in range(n):
   for j in range(m):
   B[j][i] = A[i][j]
  
   return B
  
  assert transpose([[1, 2, 3], [4, 5, 6], [7, 8, 9]])==[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
  assert transpose([[1, 2], [3, 4]])==[[1, 3], [2, 4]]
  assert transpose([[1, 2, 3], [4, 5, 6]])==[[1, 4], [2, 5], [3, 6]]
  assert transpose([[1]])==[[1]]
  assert transpose([[]])==[[]]
output: def transpose(A):
      n = len(A)
      m = len(A[0]) if A else 0
      B = [[A[i][j] for i in range(n)] for j in range(m)]
      return B