고급 리스트 연산: 정렬, 조회 및 중첩
마지막 단계에서는 정렬 (sorting), 정보 조회 (querying), 중첩 리스트 (nested lists) 작업 등 보다 고급 리스트 연산을 탐구합니다.
정렬부터 시작하겠습니다. sort() 메서드는 리스트를 제자리에서 (in-place) 수정합니다. 오름차순 또는 내림차순으로 정렬할 수 있습니다.
WebIDE 에서 list_operations.py 파일을 엽니다. 정렬을 시연하기 위해 다음 코드를 추가하십시오:
## --- Sorting Lists ---
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
print("--- Sorting Lists ---")
print("Original numbers list:", numbers)
## Sort the list in-place (ascending)
numbers.sort()
print("After sort():", numbers)
## Sort the list in descending order
numbers.sort(reverse=True)
print("After sort(reverse=True):", numbers)
## The reverse() method simply reverses the order, it does not sort
letters = ['a', 'b', 'c', 'd']
print("\nOriginal letters list:", letters)
letters.reverse()
print("After reverse():", letters)
파일을 저장하고 터미널에서 실행하십시오:
python ~/project/list_operations.py
출력 결과는 정렬되고 역순으로 된 리스트를 보여줍니다:
--- Sorting Lists ---
Original numbers list: [3, 1, 4, 1, 5, 9, 2, 6]
After sort(): [1, 1, 2, 3, 4, 5, 6, 9]
After sort(reverse=True): [9, 6, 5, 4, 3, 2, 1, 1]
Original letters list: ['a', 'b', 'c', 'd']
After reverse(): ['d', 'c', 'b', 'a']
다음으로, 정보를 찾기 위해 리스트를 조회하는 방법을 살펴보겠습니다.
count(): 값이 나타나는 횟수를 반환합니다.
index(): 값이 처음 나타나는 인덱스를 반환합니다.
list_operations.py에 다음 코드를 추가하십시오:
## --- Querying Lists ---
fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
print("\n--- Querying Lists ---")
print("Fruits list:", fruits)
## Count the occurrences of an element
apple_count = fruits.count('apple')
print("Count of 'apple':", apple_count)
## Find the index of the first occurrence of an element
banana_index = fruits.index('banana')
print("Index of first 'banana':", banana_index)
마지막으로, 중첩 리스트 (nested lists) 에 대해 살펴보겠습니다. 중첩 리스트는 다른 리스트를 요소로 포함하는 리스트입니다. 이는 행렬 (matrix) 이나 격자 (grid) 와 같은 2 차원 구조를 만드는 데 유용합니다.
이 마지막 코드 블록을 list_operations.py에 추가하십시오:
## --- Nested Lists ---
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print("\n--- Nested Lists ---")
print("Matrix:", matrix)
## Access an entire inner list (a row)
first_row = matrix[0]
print("First row:", first_row)
## Access a specific element in the nested list
## To get the element '6', we access row 1, then column 2
element = matrix[1][2]
print("Element at matrix[1][2]:", element)
파일을 저장하고 마지막으로 스크립트를 실행하십시오:
python ~/project/list_operations.py
전체 출력은 정렬, 조회 및 중첩 리스트 접근을 시연할 것입니다:
--- Sorting Lists ---
Original numbers list: [3, 1, 4, 1, 5, 9, 2, 6]
After sort(): [1, 1, 2, 3, 4, 5, 6, 9]
After sort(reverse=True): [9, 6, 5, 4, 3, 2, 1, 1]
Original letters list: ['a', 'b', 'c', 'd']
After reverse(): ['d', 'c', 'b', 'a']
--- Querying Lists ---
Fruits list: ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
Count of 'apple': 2
Index of first 'banana': 3
--- Nested Lists ---
Matrix: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
First row: [1, 2, 3]
Element at matrix[1][2]: 6
이제 Python 리스트 작업을 위한 몇 가지 고급 기술을 숙달했습니다.