[Python] 2차원 리스트 슬라이싱, 다양한 예제
April 19, 2024
2차원 리스트 슬라이싱에 대한 다양한 예제를 소개합니다.
1. 특정 범위의 행(row) 추출
matrix[0:2]
는 2차원 리스트의 Index 0부터 1까지의 행에 해당하는 첫번째와 두번째 행을 가져옵니다.
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 인덱스 0부터 1까지의 행 추출 (첫 번째와 두 번째 행)
selected_rows = matrix[0:2]
print(selected_rows)
Output:
[[1, 2, 3], [4, 5, 6]]
2. 특정 행(row) 추출
특정 행만 추출하려면 아래와 같이 index 범위를 설정하면 됩니다.
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 인덱스 1 행 추출 (두 번째 행)
selected_rows = matrix[1:2]
print(selected_rows)
Output:
[[4, 5, 6]]
3. 특정 범위 열(column)에 대한 행 추출
특정 열의 범위에 해당하는 행 값만 가져올 때 아래와 같이 구현할 수 있습니다.
- 아래 예제는 모든 행을 가져오는데, 2열부터 마지막 열에 해당하는 값들만 가져옴
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 모든 행에 대해서, 두 번째 열부터 끝 열까지 추출
selected_columns = [row[1:] for row in matrix]
print(selected_columns)
Output:
[[2, 3], [5, 6], [8, 9]]
4. 특정 범위의 열 추출
특정 범위의 열을 추출하여 하나의 리스트에 저장하려면 아래와 같이 구현할 수 있습니다.
for col in range(0, 3)
: Index 0 ~ 2 범위의 열에 대해서 추출- 2열만 가져오려면
for col in range(1, 2)
처럼 범위 지정
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 특정 범위의 열 추출
selected_columns = []
for col in range(0, 3):
column_sum = sum(row[col] for row in matrix)
selected_columns.append([row[col] for row in matrix])
print(selected_columns)
Output:
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
5. 특정 열(column) 추출
특정 열만 가져오려면 아래와 같이 열의 범위를 1개로 지정하면 됩니다.
아래 예제는 2번째 열을 가져옵니다.
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 두 번째 열의 값만 가져옴
selected_columns = [row[1:2] for row in matrix]
print(selected_columns)
Output:
[[2], [5], [8]]
만약 하나의 리스트에 열의 값을 모두 담고 싶다면, 아래와 같이 구현할 수 있습니다.
for col in range(1, 2):
: Index 1의 열만 가져옴
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 특정 범위의 열 추출
selected_columns = []
for col in range(1, 2):
column_sum = sum(row[col] for row in matrix)
selected_columns.append([row[col] for row in matrix])
print(selected_columns)
Output:
[[2], [5], [8]]
6. 특정 조건을 만족하는 행만 가져오기
아래와 같이 특정 조건을 만족하는 행을 가져올 수 있습니다.
sum(row) >= 10
: row 값들의 합이 10 이상일 때 true
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 행의 합이 10 이상인 행을 추출
selected_rows = [row for row in matrix if sum(row) >= 10]
print(selected_rows)
Output:
[[4, 5, 6], [7, 8, 9]]
7. 특정 조건을 만족하는 열만 가져오기
행과 다르게, 열의 값들만 접근하기 위해 아래와 같이 for문을 사용하여 구현하였습니다.
아래 예제는 column 값들의 합이 15 이상인 열만 가져오는 예제입니다.
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 열의 합이 15 이상인 열 추출
threshold = 15
selected_columns = []
# 열 추출
for col in range(len(matrix[0])):
column_sum = sum(row[col] for row in matrix)
if column_sum >= threshold:
selected_columns.append([row[col] for row in matrix])
print(selected_columns)
Output:
[[2, 5, 8], [3, 6, 9]]