콘텐츠로 건너뛰기

파이썬 리스트, 초기화, 수정 리스트를 다루는 방법들

    들어가며

    파이썬의 리스트는 데이터를 저장하고 조작하는데 매우 유용하게 사용할 수 있는 자료구조입니다. 리스트는 순서가 있는 변경 가능한 데이터 구조로, 다양한 테이터들을 저장할 수 있는데요. 이 글에서는 리스트의 기본 사용법, 어떻게 초기화 하고 사용 및 수정할 수 있는지에 대해 다뤄보도록 하겠습니다.

    파이썬 리스트 생성 및 초기화

    리스트는 대괄호([]를 사용하여 생성할 수 있습니다. 내부 요소 구분은 콤마(,)를 이용해 구분해 줍니다.

    # 빈 리스트 생성
    empty_list = []
    
    # 여러 타입의 요소를 포함한 리스트 생성
    mixed_list = [1, "apple", 3.14, True]
    
    # 정수 리스트
    numbers = [1, 2, 3, 4, 5]
    

    다른 대부분의 언어와 마찬가지로 리스트 생성과 동시에 초기화 할 수도 있고, 리스트 선언 후 수정을 할 수도 있습니다. 수정은 아래 섹션에서 이어서 살펴볼게요.

    리스트 요소 접근, 수정하기

    리스트 요소에는 인덱스를 사용하여 접근할 수 있습니다. 인덱스는 0부터 시작하며 음수 인덱스를 사용하면 리스트 뒤에서부터 요소 접근이 가능합니다.

    fruits = ["apple", "banana", "cherry"]
    
    # 첫 번째 요소 접근
    print(fruits[0])  # apple
    
    # 마지막 요소 접근
    print(fruits[-1])  # cherry
    
    # 요소 수정
    fruits[1] = "blueberry"
    print(fruits)  # ['apple', 'blueberry', 'cherry']
    

    리스트 슬라이싱

    위 내용이 기본기였다면 이제부터 리스트 활용도가 높아지는 방법들이 될 듯 합니다.

    리스트의 부분 집합을 추출하기 위해 슬라이싱을 사용할 수 있습니다. 슬라이싱 구문은 start:stop:step 형식에 맞춰 작성하며, 다양하게 활용할 수 있습니다. 아래 예제를 보면 금방 이해하실 수 있을거에요.

    numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    # 인덱스 2에서 5까지 슬라이싱
    subset = numbers[2:6]
    print(subset)  # [2, 3, 4, 5]
    
    # 인덱스 0에서 8까지 2씩 증가하면서 슬라이싱
    subset = numbers[0:9:2]
    print(subset)  # [0, 2, 4, 6, 8]
    
    # 리스트 전체를 뒤집기
    reversed_numbers = numbers[::-1]
    print(reversed_numbers)  # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    

    리스트의 주요 메서드와 함수

    리스트를 좀 더 쉽고 유용하게 활용할 수 있는 기본 함수들은 아래와 같습니다. 여기까지 알아두시면 리스트는 정복했다고 봐도 될 것 같습니다.

    append()

    리스트의 끝에 요소를 추가합니다.

    numbers = [1, 2, 3]
    numbers.append(4)
    print(numbers)  # [1, 2, 3, 4]

    extend()

    다른 리스트의 요소들을 현재 리스트에 추가합니다.

    numbers = [1, 2, 3]
    more_numbers = [4, 5, 6]
    numbers.extend(more_numbers)
    print(numbers)  # [1, 2, 3, 4, 5, 6]
    

    insert()

    지정된 인덱스에 요소를 추가합니다.

    numbers = [1, 2, 4]
    numbers.insert(2, 3)
    print(numbers)  # [1, 2, 3, 4]
    

    remove()

    리스트에서 지정된 값을 제거합니다. 앞에서부터 순서대로 탐색하기에 값이 여러 개 있을 경우 첫 번째 값을 제거합니다.

    numbers = [1, 2, 3, 4, 3]
    numbers.remove(3)
    print(numbers)  # [1, 2, 4, 3]
    

    pop()

    지정된 인덱스의 요소를 제거하고 반환합니다. 인덱스를 지정하지 않으면 마지막 요소를 제거하고 반환합니다. 값을 사용하면서 제거할 때 유용하게 활용할 수 있습니다.

    numbers = [1, 2, 3, 4]
    last_element = numbers.pop()
    print(last_element)  # 4
    print(numbers)  # [1, 2, 3]
    

    index()

    지정된 값의 첫 번째 인덱스를 반환합니다.

    fruits = ["apple", "banana", "cherry"]
    index_of_banana = fruits.index("banana")
    print(index_of_banana)  # 1
    

    count()

    리스트에서 지정된 값의 개수를 반환합니다.

    numbers = [1, 2, 3, 1, 1, 4]
    count_of_ones = numbers.count(1)
    print(count_of_ones)  # 3
    

    sort()

    리스트를 정렬합니다. 기본적으로 오름차순으로 정렬되며, reverse=True를 사용하면 내림차순으로 정렬됩니다. 아래 reverse()를 쓰는게 더 나을수도 있습니다.

    numbers = [3, 1, 4, 1, 5, 9]
    numbers.sort()
    print(numbers)  # [1, 1, 3, 4, 5, 9]
    
    numbers.sort(reverse=True)
    print(numbers)  # [9, 5, 4, 3, 1, 1]
    

    reverse()

    리스트의 요소 순서를 반대로 뒤집습니다.

    numbers = [1, 2, 3, 4, 5]
    numbers.reverse()
    print(numbers)  # [5, 4, 3, 2, 1]
    

    copy()

    리스트의 얕은 복사본을 반환합니다.

    numbers = [1, 2, 3]
    numbers_copy = numbers.copy()
    print(numbers_copy)  # [1, 2, 3]
    

    clear()

    리스트의 모든 요소를 제거합니다.

    numbers = [1, 2, 3]
    numbers.clear()
    print(numbers)  # []
    

    리스트 컴프리헨션

    리스트 컴프리헨션은 리스트를 간결하게 생성할 수 있는 방법입니다. 기존 리스트를 기반으로 새로운 리스트를 생성하거나, 조건문을 이용해 리스트 요소를 생성하기도 하죠. 기본기를 응용하기 나름이라 잘 배워둔다면 매우 간결한 리스트 생성에 도움이 된답니다. 심지어 코드도 간결해질 수 있죠.

    # 0부터 9까지의 제곱수를 포함하는 리스트 생성
    squares = [x**2 for x in range(10)]
    print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
    
    # 짝수만 포함하는 리스트 생성
    evens = [x for x in range(10) if x % 2 == 0]
    print(evens)  # [0, 2, 4, 6, 8]
    

    리스트와 비슷한 유용한 데이터 구조들이 궁금하지 않으세요?

    마무리

    파이썬 리스트는 다양한 데이터를 저장하고 조작하는 데 매우 유용한 도구입니다. 리스트의 기본 사용법부터 다양한 메서드와 함수를 활용한 리스트 조작 방법까지 다루어 보았는데요. 이러한 기능을 잘 활용하면 데이터 처리와 분석 작업이 훨씬 수월해질 것입니다. 파이썬 리스트의 다양한 기능을 익히고 활용하여 보다 효율적인 프로그래밍을 해보세요.