파이썬 2차원 리스트 슬라이싱

1. 2차원 리스트 슬라이싱

큰 2차원 리스트에서 작은 2차원 리스트를 슬라이싱해야하는 일이 생겼다.

pandas와 numpy를 사용하면 단순하게 array[0:2, 0:3] 하면 되지만, 리스트로만 처리하고 싶었다.


array = [[] for i in range(5)]  
  
for i in range(5):  
    for j in range(1, 9):  
        array[i].append(j+8*i)  
  
print(*array, sep='\n')  
  
n = 2  
m = 3  
  
for i in range(5-n):  
    for j in range(8-m):  
        sample_matrix = [row[j:j+3] for row in array[i:i+2]]  
        print(*sample_matrix, sep='\n')  
        print()


[1, 2, 3, 4, 5, 6, 7, 8]
[9, 10, 11, 12, 13, 14, 15, 16]
[17, 18, 19, 20, 21, 22, 23, 24]
[25, 26, 27, 28, 29, 30, 31, 32]
[33, 34, 35, 36, 37, 38, 39, 40]

[1, 2, 3]
[9, 10, 11]

[2, 3, 4]
[10, 11, 12]

[3, 4, 5]
[11, 12, 13]

[4, 5, 6]
[12, 13, 14]

이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.