만족은 하되 안주하지는 말자

기록해야 기억한다

프로그래밍/기억노트

[python] 2차원 리스트 90도 돌리기

D36choi 2020. 8. 31. 20:25
728x90

 

def rotated(array_2d):
    list_of_tuples = zip(*array_2d[::-1])
    return [list(elem) for elem in list_of_tuples]
    # return map(list, list_of_tuples)

테스트

arr = [[1,2,3],[4,5,6],[7,8,9]]
nm_arr = [[1,2],[3,4],[5,6]]
print(rotated(arr))
print(rotated(nm_arr))

위의 예시를 실행시키면 결과는 아래와 같다. 꼭 N^N 배열이 아니더라도 가능하다.

 

 

안경잡이개발자 "나동빈" 님의 리스트 90도 회전 코드

def rotated(a):
  n = len(a)
  m = len(a[0])

  result = [[0]* n for _ in range(m)]

  for i in range(n):
    for j in range(m):
      result[j][n-i-1] = a[i][j]
  return result​

이런 훨씬 알아보기 쉬운 방법도 있다. 방법은 여러가지다.