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]]