Python의 list 데이터 유형-예제를 통한 심층 분석1

2023. 12. 30. 16:29python/basic

list 클래스는 Python의 기본 내장 데이터 유형입니다. 인상적이고 유용한 기능 세트가 있어 이질적인 데이터를 효율적으로 구성하고 조작할 수 있습니다. list 사용 방법을 아는 것은 Python 개발자에게 꼭 필요한 기술입니다.

Python의 list 데이터 유형 시작하기

Python의 list는 유연하고 다재다능하며 강력하고 인기 있는 내장 데이터 유형입니다. 이를 통해 객체의 가변 길이 및 변경 가능한 시퀀스를 생성할 수 있습니다. list에는 모든 유형의 개체를 저장할 수 있습니다. list요소가 동일한 유형을 공유하는 경우가 많지만 동일한 목록 내에서 다양한 유형의 개체를 혼합할 수도 있습니다.

list 객체의 보다 관련성이 높은 특성 중 일부는 다음과 같습니다.

  • 순서: 특정 삽입 순서에 따라 순차적으로 정렬된 요소나 항목을 포함합니다.
  • 0 기반: 0부터 시작하는 인덱스로 해당 요소에 액세스할 수 있습니다.
  • 변경 가능: 포함된 요소에 대한 내부 변경 또는 변경을 지원합니다.
  • 이기종: 다양한 유형의 개체를 저장할 수 있습니다.
  • 확장 가능 및 동적: 동적으로 확장하거나 축소할 수 있습니다. 즉, 요소 ​​추가, 삽입 및 제거를 지원합니다.
  • 중첩 가능: 다른 list를 포함할 수 있으므로 list의 list를 가질 수 있습니다.
  • 반복 가능: 반복을 지원하므로 각 요소에 대해 작업을 수행하는 동안 루프나 이해를 사용하여 순회할 수 있습니다.
  • 슬라이스 가능: 슬라이싱 작업을 지원하므로 여기에서 일련의 요소를 추출할 수 있습니다.
  • 결합 가능: 연결 작업을 지원하므로 연결 연산자를 사용하여 두 개 이상의 list를 결합할 수 있습니다.
  • 복사 가능: 다양한 기술을 사용하여 콘텐츠의 복사본을 만들 수 있습니다.

Python에서 list는순서가 지정됩니다. 즉, 요소가 삽입된 순서대로 유지된다는 의미입니다.

In [ ]:
colors = [
    "red",
    "orange",
    "yellow",
    "green",
    "blue",
    "indigo",
    "violet"
]

colors

시퀀스의 위치나 인덱스를 기준으로 list의 개별 개체에 액세스할 수 있습니다. 인덱스는 0부터 시작합니다.

In [ ]:
colors[0]
In [ ]:
colors[1]
In [ ]:
colors[2]
In [ ]:
colors[3]

list에는 다양한 유형의 개체가 포함될 수 있습니다. 이것이 바로 list가 이종 컬렉션인 이유입니다.

In [ ]:
[42, "apple", True, {"name": "John Doe"}, (1, 2, 3), [3.14, 2.78]]

Python에서 목록 구성

다음 도구 중 하나를 사용하여 목록을 만들 수 있습니다.

  • list 리터럴
  • list() 생성자
  • list 이해

리터럴을 통해 목록 만들기

[item_0, item_1, ..., item_n]

이 구문은 대괄호 쌍으로 묶인 항목을 나열하여 n 항목 list를 생성합니다. 항목 유형이나 list 크기를 미리 선언할 필요는 없습니다. ㅣist는 크기가 가변적이며 이종 개체를 저장할 수 있다는 점을 기억하세요.

In [ ]:
digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
fruits = ["apple", "banana", "orange", "kiwi", "grape"]
cities = [
    "New York",
    "Los Angeles",
    "Chicago",
    "Houston",
    "Philadelphia"
]

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

inventory = [
    {"product": "phone", "price": 1000, "quantity": 10},
    {"product": "laptop", "price": 1500, "quantity": 5},
    {"product": "tablet", "price": 500, "quantity": 20}
]

functions = [print, len, range, type, enumerate]

empty = []

list() 생성자 사용

list([iterable])

list를 생성하려면 클래스 생성자나 함수를 호출하는 것처럼 list()을 호출해야 합니다. iterable 주위의 대괄호는 인수가 선택 사항임을 의미하므로 대괄호는 구문의 일부가 아닙니다. . 다음은 생성자를 사용하는 방법에 대한 몇 가지 예입니다.

In [ ]:
list((0, 1, 2, 3, 4, 5, 6, 7, 8, 9))
In [ ]:
list({"circle", "square", "triangle", "rectangle", "pentagon"})
In [ ]:
list({"name": "John", "age": 30, "city": "New York"}.items())
In [ ]:
list("Pythonista")
In [ ]:
list()

list() 생성자는 반복자 개체에서 목록을 생성해야 할 때 특히 유용합니다. 예를 들어, 피보나치 수열생성기 함수가 있다고 가정해 보겠습니다. 요청 시 list 처음 10개의 숫자를 저장해야 합니다.

In [ ]:
def fibonacci_generator(stop):
    current_fib, next_fib = 0, 1
    for _ in range(0, stop):
        fib_number = current_fib
        current_fib, next_fib = next_fib, current_fib + next_fib
        yield fib_number

fibonacci_generator(10)
In [ ]:
list(fibonacci_generator(10))

참고: 리터럴 구문과 반복 가능한 압축 풀기 연산자( 생성자*) list()

방법은 다음과 같습니다.

이 예에서 반복 가능한 압축 풀기 연산자는 반복자를 사용하고 대괄호는 최종 숫자 list를 구성합니다. 그러나 이 기술은 list()을 사용하는 것보다 읽기 쉽고 명시적이지 않습니다.

In [ ]:
[*fibonacci_generator(10)]

list 이해를 사용하여 list 작성

list 이해는 Python의 가장 독특한 기능 중 하나입니다. Python 커뮤니티에서 매우 인기가 높으므로 어디서나 찾을 수 있습니다. list 이해를 사용하면 for 루프를 모방하는 구문을 사용하여 단 한 줄의 코드로 list를 빠르게 만들고 변환할 수 있습니다.m

[expression(item) for item in iterable]

모든 list 이해에는 최소한 세 가지 구성 요소가 필요합니다.

  • expression()은 구체적인 값을 반환하는 Python 표현식이며, 대부분의 경우 해당 값은 item 함수일 필요는 없습니다.
  • item은 iterable의 현재 개체입니다.
  • iterable은 list, tuple, set, string, 혹은 generator 같은 Python 반복 가능 객체일 수 있습니다.
In [ ]:
[number ** 2 for number in range(1, 11)]

이 예에서는 range()을 사용하여 처음 10개의 정수를 가져옵니다. 이해력은 제곱을 계산하고 새 list를 작성하는 동안 반복됩니다.

목록의 항목에 액세스: 인덱싱

항목과 연결된 색인을 사용하여 list의 개별 항목에 액세스할 수 있습니다. 아이템의 인덱스란 무엇인가요? list의 각 항목에는 list에서의 해당 위치를 지정하는 색인이 있습니다. 인덱스는 0에서 시작하여 list에서 1를 뺀 항목 수까지 올라가는 정수입니다.

list_object[index]

In [ ]:
languages = ["Python", "Java", "JavaScript", "C++", "Go", "Rust"]
languages[0]
In [ ]:
languages[1]
In [ ]:
languages[2]
In [ ]:
languages[3]
In [ ]:
languages[4]
In [ ]:
languages[5]

list에 있는 항목 수를 list의 길이라고 합니다. 내장된 len() 함수를 사용하여 list의 길이를 확인할 수 있습니다.

In [ ]:
len(languages)
In [ ]:
languages[6]

Python에서는 색인 작업이 매우 유연합니다. 예를 들어, list를 색인화하는 동안 음수 색인을 사용할 수도 있습니다. 이러한 종류의 색인을 사용하면 list 항목에 역순으로 액세스할 수 있습니다.

In [ ]:
languages[-1]
In [ ]:
languages[-2]
In [ ]:
languages[-6]

음수 인덱스는 0에서 시작하지 않는다는 점에 유의하는 것이 중요합니다. 음수 인덱스를 사용하면 많은 상황에서 매우 편리할 수 있습니다. 예를 들어 list의 마지막 항목에 액세스하는 것은 매우 일반적인 작업입니다. Python에서는 languages[-1]과 같이 음수 인덱스를 사용하여 이 작업을 수행할 수 있습니다.

list에는 다른 list 및 시퀀스를 포함하여 모든 유형의 항목이 포함될 수 있습니다. 다른 시퀀스가 ​​포함된 list가 있는 경우 인덱싱 작업을 연결하여 중첩된 시퀀스의 항목에 액세스할 수 있습니다.

In [ ]:
employees = [
    ("John", 30, "Software Engineer"),
    ("Alice", 25, "Web Developer"),
    ("Bob", 45, "Data Analyst"),
    ("Mark", 22, "Intern"),
    ("Samantha", 36, "Project Manager")
]

list_of_sequences[index_0][index_1]...[index_n]

각 색인 끝에 있는 숫자는 list의 중첩 수준을 나타냅니다. 예를 들어 직원 목록에는 한 가지 수준의 중첩이 있습니다. 따라서 Alice의 데이터에 액세스하려면 다음과 같이 할 수 있습니다.

In [ ]:
employees[1][0]
In [ ]:
employees[1][1]
In [ ]:
employees[1][2]

중첩된 항목이 dict인 경우 키를 사용하여 해당 데이터에 액세스할 수 있습니다.

In [ ]:
employees = [
    {"name": "John", "age": 30, "job": "Software Engineer"},
    {"name": "Alice", "age": 25, "job": "Web Developer"},
    {"name": "Bob", "age": 45, "job": "Data Analyst"},
    {"name": "Mark", "age": 22, "job": "Intern"},
    {"name": "Samantha", "age": 36, "job": "Project Manager"}
]

employees[3]["name"]
In [ ]:
employees[3]["age"]
In [ ]:
employees[3]["job"]

이 예에는 사전 목록이 있습니다. 사전 중 하나의 데이터에 액세스하려면 list에서 해당 인덱스를 사용해야 하며 그 뒤에 대괄호로 묶인 대상 키가 와야 합니다.

목록에서 여러 항목 검색: 분할

목록 작업 시 또 다른 일반적인 요구 사항은 주어진 목록의 일부 또는 조각을 추출하는 것입니다. 다음 구문을 사용하는 슬라이싱 작업을 사용하여 이 작업을 수행할 수 있습니다.

list_object[start:stop:step]

이 구성의 [start:stop:step] 부분은 슬라이싱 연산자로 알려져 있습니다. 구문은 한 쌍의 대괄호와 세 개의 선택적 인덱스(start, stop 및 step)로 구성됩니다. 두 번째 콜론은 선택사항입니다. 일반적으로 step 1과 다른 값이 필요한 경우에만 사용합니다.

참고: 슬라이싱은 목록, 튜플, 문자열, 범위 등을 포함한 모든 Python 시퀀스 데이터 유형에 공통적인 작업입니다.

슬라이싱 연산자의 인덱스의 의미는 다음과 같습니다.

  • start : 슬라이싱을 시작하려는 인덱스를 지정합니다. 결과 조각에는 이 인덱스의 항목이 포함됩니다.
  • stop : 슬라이싱에서 항목 추출을 중지하려는 인덱스를 지정합니다. 결과 조각에는 이 인덱스의 항목이 포함되지 않습니다.
  • step : 각 단계에서 분할이 건너뛸 항목 수를 나타내는 정수 값을 제공합니다. 결과 조각에는 건너뛴 항목이 포함되지 않습니다.

슬라이싱 연산자의 모든 인덱스는 선택 사항입니다. 기본값은 다음과 같습니다.

색인기본값
start 0
stop len(list_object)
step 1

인덱싱 연산자의 최소 작동 변형은 [:]입니다. 이 변형에서는 모든 인덱스의 기본값을 사용하고 두 번째 콜론이 선택 사항이라는 사실을 활용합니다. [::] 슬라이싱 연산자의 변형은 [:]과 동일한 결과를 생성합니다. 이번에는 세 가지 지수의 기본값을 사용합니다.

In [ ]:
letters = ["A", "a", "B", "b", "C", "c", "D", "d"]

upper_letters = letters[0::2] # Or [::2]
upper_letters
In [ ]:
lower_letters = letters[1::2]
lower_letters

첫 번째 슬라이싱에서는 목록의 맨 처음부터 시작하려고 하기 때문에 0에서 출발을 사용합니다. 두 번째 슬라이싱에서는 첫 번째 항목을 뛰어넘어 두 번째 항목에서 항목 추출을 시작해야 하기 때문에 1에서 출발을 사용합니다.

In [ ]:
digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

first_three = digits[:3]
first_three
In [ ]:
middle_four = digits[3:7]
middle_four
In [ ]:
every_other = digits[::2]
every_other
In [ ]:
every_three = digits[::3]
every_three

모든 슬라이싱 작업은 내부적으로 slice 개체를 사용합니다. 내장된 slice() 함수는 목록에서 여러 항목을 추출하는 데 사용할 수 있는 slice 개체를 생성하는 대체 방법을 제공합니다. 이 내장 함수의 서명은 다음과 같습니다.

slice(start, stop, step)

In [ ]:
letters = ["A", "a", "B", "b", "C", "c", "D", "d"]

upper_letters = letters[slice(0, None, 2)]
upper_letters
  • start가 list의 시작 부분 앞에 있으면(음수 인덱스를 사용할 때 발생할 수 있음) Python은 대신 0를 사용합니다.
  • start이 stop보다 큰 경우 슬라이싱은 빈 list를 반환합니다.
  • stop이 list
In [ ]:
colors = [
    "red",
    "orange",
    "yellow",
    "green",
    "blue",
    "indigo",
    "violet"
]

len(colors)
In [ ]:
colors[-8:]
In [ ]:
colors[8:]
In [ ]:
colors[:8]

list 복사본 만들기

list의 별칭

In [ ]:
countries = ["United States", "Canada", "Poland", "Germany", "Austria"]

nations = countries
id(countries) == id(nations)
In [ ]:
countries[0] = "United States of America"

nations

이 코드 조각에서 강조 표시된 첫 번째 줄은 countries의 별칭으로 nations을 만듭니다. 두 변수가 어떻게 동일한 객체를 가리키는지 확인하세요. 객체의 ID가 동일하기 때문에 이를 알 수 있습니다. 강조 표시된 두 번째 줄에서는 countries의 인덱스에 있는 개체를 업데이트합니다. 이 변경 사항은 nations 별칭에 반영됩니다.

list의 얕은 복사본

list의 얕은 복사본을 만들면 Python은 새로운 ID로 새 list를 구성합니다. 그런 다음 원래 list의 개체에 대한 참조를 새 list에 삽입합니다.

기존 list의 얕은 복사본을 만드는 방법에는 최소한 세 가지가 있습니다.

  • 슬라이싱 연산자,[:]
  • .copy() 방법
  • copy 모듈의 copy() 함수
In [ ]:
countries = ["United States", "Canada", "Poland", "Germany", "Austria"]

nations = countries[:]
nations
In [ ]:
id(countries) == id(nations)
In [ ]:
id(nations) == id(countries)

그러나 nations의 요소는 countries 요소의 별칭입니다.

In [ ]:
id(nations[0]) == id(countries[0])
In [ ]:
id(nations[3]) == id(countries[3])
In [ ]:
countries[0] = "United States of America"
countries
In [ ]:
nations
In [ ]:
id(countries[0]) == id(nations[0])
In [ ]:
id(countries[1]) == id(nations[1])

list 복사본을 만드는 것은 매우 일반적인 작업이기 때문에 list 클래스에는 이를 위한 전용 메서드가 있습니다. 이 메소드는 .copy()라고 불리며 대상 list의 얕은 복사본을 반환합니다.

In [ ]:
countries = ["United States", "Canada", "Poland", "Germany", "Austria"]

nations = countries.copy()
nations
In [ ]:
id(countries) == id(nations)
In [ ]:
id(countries[0]) == id(nations[0])
In [ ]:
countries[0] = "United States of America"
countries
In [ ]:
nations

list의 얕은 복사본을 만드는 또 다른 도구를 찾을 수 있습니다. 모듈의 copy() 함수를 사용하면 다음과 같은 작업을 수행할 수 있습니다.

In [ ]:
from copy import copy

countries = ["United States", "Canada", "Poland", "Germany", "Austria"]

nations = copy(countries)
nations
In [ ]:
id(countries) == id(nations)
In [ ]:
id(countries[0]) == id(nations[0])
In [ ]:
countries[0] = "United States of America"
countries
In [ ]:
nations

목록의 전체 복사본

기존 list의 전체 복사본을 생성하려면 모듈의 deepcopy() 함수를 사용할 수 있습니다.

In [ ]:
from copy import deepcopy

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
matrix_copy = deepcopy(matrix)

id(matrix) == id(matrix_copy)
In [ ]:
id(matrix[0]) == id(matrix_copy[0])
In [ ]:
matrix_copy[0][0] = 100
matrix_copy[0][1] = 200
matrix_copy[0][2] = 300
matrix_copy
In [ ]:
matrix

matrix_copy 또는 기타 전체 복사의 변경 사항이 matrix의 콘텐츠에 영향을 주지 않습니다.

list의 항목 업데이트: 색인 할당

Python list는 변경 가능 데이터 유형입니다. 이는 기본 list의 ID를 변경하지 않고도 해당 요소를 변경할 수 있음을 의미합니다. 이러한 종류의 변경을 일반적으로 내부 돌연변이라고 합니다. 기존 list에 있는 하나 이상의 항목 값을 업데이트할 수 있습니다.

list_object[index] = new_value

인덱싱 연산자를 사용하면 해당 인덱스를 통해 대상 항목에 액세스할 수 있고 할당 연산자를 사용하면 현재 값을 변경할 수 있습니다.

In [ ]:
numbers = [1, 2, 3, 4]

numbers[0] = "one"
numbers
In [ ]:
numbers[-1] = "four"
numbers

항목의 가치를 알고 있지만 list에 있는 항목의 색인을 모르는 경우 어떻게 해야 합니까?

In [ ]:
fruits = ["apple", "banana", "orange", "kiwi", "grape"]

fruits[fruits.index("kiwi")] = "mango"
fruits

.index() 메소드는 특정 항목을 인수로 사용하고 기본 list에서 해당 항목이 처음 나타나는 색인을 반환합니다.

또한 여러 list 항목의 값을 한 번에 업데이트할 수도 있습니다. 그렇게 하려면 슬라이싱 연산자를 사용하여 항목에 액세스한 다음 할당 연산자와 새 값의 반복 가능 항목을 사용하면 됩니다. 이러한 연산자 조합을 줄여서 슬라이스 할당이라고 할 수 있습니다.

list_object[start:stop:step] = iterable

In [ ]:
numbers = [1, 2, 3, 4, 5, 6, 7]

numbers[1:4] = [22, 33, 44]
numbers

iterable에 대상 슬라이스보다 더 많거나 적은 요소가 있는 경우 list_object는 그에 따라 자동으로 늘어나거나 줄어듭니다.

In [ ]:
numbers = [1, 5, 6, 7]

numbers[1:1] = [2, 3, 4]
numbers

슬라이스를 사용하여 기존 목록을 축소할 수도 있습니다.

In [ ]:
numbers = [1, 2, 0, 0, 0, 0, 4, 5, 6, 7]

numbers[2:6] = [3]
numbers

여기서 초기 list에는 3이 있어야 하는 곳에 0이 많이 있습니다. 슬라이싱 연산자는 0으로 채워진 부분을 가져와 단일 3으로 바꿉니다.

동적으로 list 확장 및 축소

Python list에서 가변성은 항목을 제자리에서 수정하는 것을 허용하는 것 이상입니다. list는 변경 가능하므로 요소를 추가하거나 제거하여 즉시 길이를 변경할 수 있습니다. 따라서 이미 배웠듯이 list는 가변 길이 컨테이너이기도 합니다.

한 번에 단일 항목 추가:.append()

이 메소드는 한 번에 하나의 항목을 가져와 대상 list는 오른쪽 끝에 추가합니다.

In [ ]:
pets = ["cat", "dog"]

pets.append("parrot")
pets

.append() 사용은 다음 슬라이스 할당을 수행하는 것과 같습니다.

In [ ]:
pets[len(pets):] = ["hawk"]
pets
In [ ]:
pets.append(["hamster", "turtle"])
pets

pets의 마지막 항목이 두 마리의 새로운 독립 애완동물이 아닌 두 마리의 애완동물 list이라는 점에 유의하세요.

한 번에 여러 항목으로 목록 확장:.extend()

list 작업을 할 때 목록 오른쪽 끝에 여러 항목을 한 번에 추가해야 할 수도 있습니다. 이는 매우 일반적인 요구 사항이므로 Python의 list에는 해당 작업을 위한 전용 메서드가 있습니다.

In [ ]:
fruits = ["apple", "pear", "peach"]

fruits.extend(["orange", "mango", "banana"])
fruits

.extend()은 모든 반복 가능 항목을 인수로 사용할 수 있다는 점에 유의해야 합니다. 따라서 튜플, 문자열, 사전 및 해당 구성 요소, 반복자, 심지어 세트를 사용할 수 있습니다.

In [ ]:
fruits = ["apple", "pear", "peach"]

fruits[len(fruits):] = ["orange", "mango", "banana"]
fruits

주어진 위치에 항목 삽입:.insert()

.insert() 방법은 기존 list에 항목을 추가하는 데 사용할 수 있는 또 다른 도구입니다. 이 방법은 .append() 및 .extend()과는 약간 다릅니다. list의 오른쪽 끝에 항목을 추가하는 대신 .insert()을 사용하면 항목을 넣을 위치를 결정할 수 있습니다. 즉, .insert()는 두 가지 인수를 취합니다:

  • index: 항목을 삽입하려는 인덱스
  • item: list에 삽입해야 하는 항목
In [ ]:
letters = ["A", "B", "F", "G"]

letters.insert(2, "C")
letters
In [ ]:
letters[3:3] = ["D"]
letters

list에서 항목 삭제

Python을 사용하면 기존 목록에서 하나 이상의 항목을 제거할 수도 있습니다. 다시 말하지만, 목록에서 항목을 삭제하는 것은 매우 일반적인 작업이므로 list 클래스에 이미 메서드가 있어 이를 수행하는 데 도움이 됩니다. 다음과 같은 방법이 있습니다.

방법설명
.remove(item) list에서 처음 나타나는 item을 제거합니다. 해당 항목이 없으면 ValueError 발생합니다.
.pop([index]) index에서 항목을 제거하고 호출자에게 다시 반환합니다. 대상 index을 제공하지 않으면 .pop()은 list의 마지막 항목을 제거하고 반환합니다. index 주위의 대괄호는 인수가 선택 사항임을 의미합니다. 대괄호는 구문의 일부가 아닙니다.
.clear() list에서 모든 항목을 제거합니다.

.remove() 메소드는 list에서 항목을 제거하려고 하지만 항목의 색인을 모르는 경우에 유용합니다. 동일한 값을 가진 항목이 여러 개 있는 경우 .remove() 항목이 발생한 횟수만큼 호출하여 모든 항목을 제거할 수 있습니다.

In [ ]:
sample = [12, 11, 10, 42, 14, 12, 42]

sample.remove(42)
sample
In [ ]:
sample.remove(42)
sample

.pop() 메소드를 사용하면 해당 색인을 사용하여 특정 항목을 제거하고 반환할 수 있습니다. 색인 없이 메소드를 호출하면 기본 list의 마지막 항목이 제거되고 반환됩니다.

In [ ]:
to_visit = [
    "https://realpython.com",
    "https://python.org",
    "https://stackoverflow.com",
]

visited = to_visit.pop()
visited
In [ ]:
to_visit
In [ ]:
visited = to_visit.pop(0)
visited
In [ ]:
to_visit
In [ ]:
visited = to_visit.pop(-1)
visited
In [ ]:
to_visit

list에서 모든 항목을 한 번에 제거하는 것도 빈번한 작업일 수 있습니다. 이 경우 Python에서는 list에 정확히 해당 작업을 수행하는 .clear()라는 메서드가 있기 때문에 이를 처리합니다.

In [ ]:
cache = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
cache.clear()
cache

다음 슬라이스 할당은 .clear() 메소드와 동일한 결과를 생성합니다.

In [ ]:
cache = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
cache[:] = []
cache

기존 list에서 하나 이상의 항목을 제거하는 데 사용할 수 있는 Python 도구가 하나 더 있습니다. 예, 그게 del 진술입니다. del 인덱싱 또는 슬라이싱 작업을 결합하여 각각 하나의 항목 또는 여러 항목을 제거할 수 있습니다

In [ ]:
colors = [
    "red",
    "orange",
    "yellow",
    "green",
    "blue",
    "indigo",
    "violet"
]

del colors[1]
colors
In [ ]:
del colors[-1]
colors
In [ ]:
del colors[2:4]
colors
In [ ]:
del colors[:]
colors