닥터 쥰
긁어모으고. 기록하고. 고민하고.
닥터 쥰
전체 방문자
오늘
어제
  • 분류 전체보기
    • Robot Theory
      • Manipulator Theory
    • Project notes
      • Robot Operating System
      • Arduino
      • CAD program
    • 도전, 코딩테스트
      • Python version
    • Tutorial
    • Hobby Life
      • 짬짬이 독서!
      • 출퇴근 독서!
      • 레고
    • etc.

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • Universal robot
  • python
  • robot
  • 출퇴근 독서
  • 코딩테스트
  • 동역학
  • 튜토리얼
  • 매니퓰레이터
  • SWEA
  • UR3
  • control
  • 로봇 동역학
  • 출퇴근독서
  • 로봇 제어
  • manipulator
  • control theory
  • theory
  • manipulator robot
  • Tutorial
  • 라그랑지안
  • 기구학
  • speed champions
  • 독서
  • 수학
  • Robot arm
  • kinematics
  • ros
  • 뉴턴 오일러 운동방정식
  • 짬짬이 독서
  • 로봇

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
닥터 쥰

긁어모으고. 기록하고. 고민하고.

리스트 조작 다루기 (리스트 돌려보기, 2-3차원 리스트 다뤄보기)
도전, 코딩테스트/Python version

리스트 조작 다루기 (리스트 돌려보기, 2-3차원 리스트 다뤄보기)

2022. 11. 23. 10:08

참고한 곳:
https://programmer-chocho.tistory.com/59

https://tasddc.tistory.com/108

https://kimjingo.tistory.com/205 [각주:1]

 

2차원 리스트 접근해보기

# 2차원 리스트의 선언
home = [[0 for _ in range(3)] for _ in range(3)]
print(home)
>> [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

# 리스트 home = [[0, 1, 2], [3, 4, 5], [6, 7, 8]]가 있을 때,
# 1) 가로 요소 (row 고정, col 변화)
temp01 = [[-1 for _ in range(3)] for _ in range(3)]
for i in range(3):
    for j in range(3):
        temp01[i][j] = home[i][j]
print(temp01)
# [0][0], [0][1], [0][2] || [1][0], [1][1], [1][2] || [2][0], [2][1], [2][2]
>> [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

# 2) 세로 요소 (row 변화, col 고정)
temp02 = [[-1 for _ in range(3)] for _ in range(3)]
for i in range(3):
    for j in range(3):
       temp02[j][i] = home[i][j] 
print(temp02)
# [0][0], [0][1], [0][2] || [1][0], [1][1], [1][2] || [2][0], [2][1], [2][2]
>> [[0, 3, 6], [1, 4, 7], [2, 5, 8]]

# 3) 대각선 접근 ↘️ ↙️ ↗️ ↖️ 네 개
N = len(home)
temp03 = [-1 for _ in range(N)]
for i in range(N):
    temp03[i] = home[i][i]
print(temp03)
# [0][0], [1][1], [2][2]
>> [[0, -1, -1], [-1, 4, -1], [-1, -1, 8]]

temp04 = [-1 for _ in range(N)]
for i in range(N):
    temp04[i] = home[i][N-i-1]
print(temp04)
# [0][2], [1][1], [2][0]
>> [2, 4, 6]

temp05 = [-1 for _ in range(N)]
for i in range(N):
    temp05[i] = home[N-i-1][i]
print(temp05)
# [2][0], [1][1], [0][2]
>> [6, 4, 2]

temp06 = [-1 for _ in range(N)]
for i in range(N):
    temp06[i] = home[N-i-1][N-i-1]
print(temp06)
# [2][2], [1][1], [0][0]
>> [8, 4, 0]

 

3차원 리스트 접근해보기

lane_xy = [[[-1 for _ in range(N)] for _ in range(N)] for _ in range(N)]
plane_yz = [[[-1 for _ in range(N)] for _ in range(N)] for _ in range(N)]
plane_xz = [[[-1 for _ in range(N)] for _ in range(N)] for _ in range(N)]
home = [[[1, 0, 0], [1, 1, 0], [1, 1, 1]], [[1, 0, 0], [1, 1, 0], [1, 1, 1]], [[1, 0, 0], [1, 1, 0], [1, 1, 1]]]

# 각 x-y, y-z, x-z 평면의 가로 요소만 접근
for case in range(3):
    for i in range(N):
       for j in range(N):
            for k in range(N):
                if case == 0:
                    plane_xy[j][k][i] = home[i][j][k]
                elif case == 1:
                    plane_yz[k][i][j] = home[i][j][k]
                elif case == 2:
                    plane_xz[i][k][j] = home[i][j][k]
                    
print(plane_xy)
>> [[[1, 1, 1], [0, 0, 0], [0, 0, 0]], [[1, 1, 1], [1, 1, 1], [0, 0, 0]], [[1, 1, 1], [1, 1, 1], [1, 1, 1]]]
print(plane_yz)
>> [[[1, 1, 1], [1, 1, 1], [1, 1, 1]], [[0, 1, 1], [0, 1, 1], [0, 1, 1]], [[0, 0, 1], [0, 0, 1], [0, 0, 1]]]
print(plane_xz)
>> [[[1, 1, 1], [0, 1, 1], [0, 0, 1]], [[1, 1, 1], [0, 1, 1], [0, 0, 1]], [[1, 1, 1], [0, 1, 1], [0, 0, 1]]]

 

리스트 회전 시키기

home = [[1,0,0],[1,1,0],[1,1,1]]
rot90 = [[-1 for _ in range(N)] for _ in range(N)]
rot180 = [[-1 for _ in range(N)] for _ in range(N)]
rot270 = [[-1 for _ in range(N)] for _ in range(N)]
for case in range(3):
    for i in range(N):
        for j in range(N):
            if case == 0:
                rot90[N-i-1][j] = home[i][j]
            if case == 1:
                rot180[N-i-1][N-j-1] = home[i][j]
            if case == 2:
                rot270[i][N-j-1] = home[i][j]
                
# [2][0], [1][0], [0][0]
# [2][1], [1][1], [0][1]
# [2][2], [1][2], [0][2]
print(rot90)
>> [[1, 1, 1], [1, 1, 0], [1, 0, 0]]

# [2][2], [2][1], [2][0]
# [1][2], [1][1], [1][0]
# [0][2], [0][1], [0][0]
print(rot180)
>> [[1, 1, 1], [0, 1, 1], [0, 0, 1]]

# [0][2], [1][2], [2][2]
# [0][1], [1][1], [2][1]
# [0][0], [1][0], [2][0]
print(rot270)
>> [[0, 0, 1], [0, 1, 1], [1, 1, 1]]

 

 

 

 

 

  1. 삼성 SW 서티 유형별 분석 글 [본문으로]
저작자표시 비영리 동일조건 (새창열림)

'도전, 코딩테스트 > Python version' 카테고리의 다른 글

최빈값 구하기  (0) 2022.10.03
Dictionary (딕셔너리)  (1) 2022.09.21
00. 리스트, 반복문, 조건문  (0) 2022.09.18
01. 수학 문법  (2) 2022.08.23
    '도전, 코딩테스트/Python version' 카테고리의 다른 글
    • 최빈값 구하기
    • Dictionary (딕셔너리)
    • 00. 리스트, 반복문, 조건문
    • 01. 수학 문법
    닥터 쥰
    닥터 쥰
    로봇 공학, 개인관심사를 기록하려구요.

    티스토리툴바