웹사이트 검색

Python 3에서 목록 메서드를 사용하는 방법


소개

Python 3에는 목록을 포함하여 여러 내장 데이터 구조가 있습니다. 데이터 구조는 데이터를 구성하고 저장하는 방법을 제공하며 기본 제공 메서드를 사용하여 해당 데이터를 검색하거나 조작할 수 있습니다.

이 자습서를 최대한 활용하려면 목록 데이터 유형, 해당 구문 및 인덱싱 방법에 대해 어느 정도 익숙해야 합니다. Python 3의 목록 이해 튜토리얼을 읽어 목록을 검토할 수 있습니다.

여기서는 목록 작업에 사용할 수 있는 기본 제공 메서드를 살펴보겠습니다. 목록에서 항목을 추가 및 제거하고, 목록을 확장하고, 목록을 반전 및 정렬하는 등의 작업을 수행합니다.

목록은 변경 가능하거나 변경할 수 있는 데이터 유형이라는 점을 명심하는 것이 중요합니다. 변경할 수 없는 문자열과 달리 목록에서 메서드를 사용할 때마다 목록의 복사본이 아니라 목록 자체에 영향을 미칩니다.

이 튜토리얼에서는 시립 수족관에 물고기를 추가하거나 제거할 때 수정해야 하는 다양한 물고기 목록으로 구성된 목록을 주로 사용합니다.

전제 조건

컴퓨터나 서버에 Python 3이 설치되어 있고 프로그래밍 환경이 설정되어 있어야 합니다. 프로그래밍 환경이 설정되지 않은 경우 운영 체제(Ubuntu, CentOS, Debian 등)에 적합한 서버의 프로그래밍 환경에 대한 설치 및 설정 가이드를 참조할 수 있습니다.

list.append()

list.append(x) 메서드는 목록 끝에 항목(x)을 추가합니다. 수족관 전체에 흩어져 있는 물고기 목록부터 시작하겠습니다.

fish = ['barracuda','cod','devil ray','eel']

이 목록은 4개의 문자열 항목으로 구성되며 색인 번호는 0의 barracuda에서 색인 3의 eel까지입니다.

우리는 오늘 수족관에 새로운 물고기를 얻었고 그 물고기를 우리 목록에 추가하고 싶습니다. 새로운 물고기 유형인 flounder 문자열을 list.append() 메서드에 전달한 다음 수정된 목록을 출력하여 항목이 추가되었는지 확인합니다. .

fish.append('flounder')
print(fish)
Output
['barracuda', 'cod', 'devil ray', 'eel', 'flounder']

이제 .append() 함수에 전달한 항목으로 끝나는 5개의 문자열 항목 목록이 있습니다.

목록.삽입()

list.insert(i,x) 메서드는 두 개의 인수를 사용합니다. i는 항목을 추가하려는 인덱스 위치이고 x 는 항목 자체입니다.

우리 수족관은 또 다른 새로운 물고기인 멸치를 얻었습니다. 지금까지 fish 목록이 알파벳 순서로 되어 있음을 눈치채셨을 것입니다. 이 때문에 list.append() 함수를 사용하여 fish 끝에 문자열 anchovy를 추가하고 싶지 않습니다. 대신 list.insert()를 사용하여 인덱스 위치 0에서 이 목록의 시작 부분에 anchovy를 추가합니다.

fish.insert(0,'anchovy')
print(fish)
Output
['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder']

이 경우 목록 앞에 문자열 항목을 추가했습니다. 각각의 연속 항목은 이제 모두 아래로 이동했기 때문에 새로운 인덱스 번호에 있게 됩니다. 따라서 바라쿠다는 인덱스 1, cod는 인덱스 2, 마지막 항목인 가자미는 인덱스 5가 됩니다.

이 시점에서 수족관에 담셀피시를 데려오고 위의 목록을 기반으로 알파벳 순서를 유지하려면 항목을 인덱스 3에 배치합니다. fish.insert( 3,damselfish).

목록.확장()

둘 이상의 목록을 결합하려면 두 번째 목록을 인수로 사용하는 list.extend(L) 메서드를 사용할 수 있습니다.

우리 수족관은 문을 닫는 또 다른 수족관에서 4마리의 새로운 물고기를 맞이하고 있습니다. more_fish 목록에 이 물고기들이 함께 있습니다.

more_fish = ['goby','herring','ide','kissing gourami']

이제 more_fish 목록의 항목을 fish 목록에 추가하고 목록을 인쇄하여 두 번째 목록이 통합되었는지 확인합니다.

fish.extend(more_fish)
print(fish)
Output
['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder', 'goby', 'herring', 'ide', 'kissing gourami']

이 시점에서 목록 fish는 10개의 항목으로 구성됩니다.

목록.제거()

목록에서 항목을 제거해야 하는 경우 값이 xlist.remove(x) 메서드를 사용합니다. >.

지역 연구 과학자 그룹이 수족관을 방문했습니다. 그들은 키스 구라미 종의 물고기에 대한 연구를 하고 있습니다. 그들은 우리에게 Kissing Gourami를 빌려달라고 요청했기 때문에 이 변경 사항을 반영하기 위해 목록에서 Kissing Gourami 항목을 제거하고자 합니다.

fish.remove('kissing gourami')
print(fish)
Output
['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder', 'goby', 'herring', 'ide']

list.remove() 메서드를 사용한 후 목록에는 더 이상 kissing gourami 항목이 없습니다.

목록에 없는 항목을 list.remove()x에 전달하면 다음 오류가 발생합니다.

Output
ValueError: list.remove(x): x not in list

list.remove()는 전달한 항목의 첫 번째 인스턴스만 제거하므로 수족관에 두 개의 키스 구라미가 있고 한 개만 과학자에게 빌려주었다면 fish.remove(kissing gourami)의 동일한 구성을 사용할 수 있고 여전히 우리 목록에 두 번째 키스 구라미가 있을 수 있습니다.

목록.팝()

list.pop([i]) 메서드를 사용하여 목록에서 지정된 인덱스 위치에 있는 항목을 반환한 다음 해당 항목을 제거할 수 있습니다. 인덱스에 대한 i 주변의 대괄호는 이 매개변수가 선택 사항임을 알려주므로 인덱스를 지정하지 않으면(fish.pop()에서와 같이) 마지막 항목은 반환되고 제거됩니다.

우리의 악마 가오리는 우리 수족관에 비해 너무 커졌고 고맙게도 몇몇 마을에 있는 수족관이 가오리의 필요를 수용할 수 있습니다. .pop()을 사용하고 항목 devil ray 문자열의 인덱스 번호(3)를 지정하여 목록에서 항목을 제거합니다. , 반품을 통해 올바른 항목을 제거하고 있음을 확인합니다.

print(fish.pop(3))
print(fish)
Output
devil ray ['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide']

.pop() 메서드를 사용하여 fish 목록에서 devil ray를 반환하고 제거할 수 있었습니다.

이 메서드에 매개 변수를 전달하지 않고 fish.pop()을 수행하면 마지막 항목 ide가 반환된 다음 목록에서 제거됩니다.

목록.인덱스()

목록이 길어지기 시작하면 특정 값이 있는 인덱스 위치를 결정하기 위해 항목을 세는 것이 더 어려워집니다. list.index(x)를 사용할 수 있습니다. 여기서 x는 항목 값과 동일하며 해당 항목이 있는 목록의 인덱스를 반환합니다. 값이 x인 항목이 두 개 이상 있는 경우 이 메서드는 첫 번째 인덱스 위치를 반환합니다.

print(fish)
print(fish.index('herring'))
Output
['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide'] 6

물고기 목록은 그다지 길지 않지만 청어 항목의 색인 위치는 세지 않고 결정할 수 있습니다. 목록을 효과적으로 조작하려면 각 항목의 인덱스를 아는 것이 매우 중요합니다.

.index()로 값을 지정하고 주어진 목록에 해당 값이 없으면 오류가 발생합니다: ValueError: x is not in list.

목록.복사()

목록으로 작업할 때 원본 목록을 변경하지 않은 상태에서 여러 가지 방법으로 조작하려는 경우 list.copy()를 사용하여 목록의 복사본을 만들 수 있습니다.

fish.copy()에서 반환된 값을 변수 fish_2에 전달한 다음 fish_2의 값을 출력하여 물고기와 같은 항목이 있는 목록입니다.

fish_2 = fish.copy()
print(fish_2)
Output
['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide']

이 시점에서 fishfish_2는 모두 동등한 목록입니다.

list.reverse()

list.reverse() 메서드를 사용하여 목록의 항목 순서를 뒤집을 수 있습니다. 아마도 전통적인 알파벳 순서보다 알파벳 역순을 사용하는 것이 더 편리할 것입니다. 이 경우 fish 목록과 함께 .reverse() 메서드를 사용하여 목록을 제자리에서 반전시켜야 합니다.

fish.reverse()
print(fish)
Output
['ide', 'herring', 'goby', 'flounder', 'eel', 'cod', 'barracuda', 'anchovy']

.reverse() 메서드를 사용한 후 목록은 목록의 끝에 있는 ide 항목으로 시작하여 anchovy 로 끝납니다. , 목록의 시작 부분에 있었습니다.

list.count()

list.count(x) 메서드는 지정된 목록 내에서 값 x가 발생하는 횟수를 반환합니다. 일치하는 값이 많은 긴 목록이 있을 때 이 방법을 사용할 수 있습니다. 예를 들어 더 큰 수족관이 있고 가지고 있는 모든 네온 테트라에 대한 항목이 있는 경우 .count()를 사용하여 현재 보유하고 있는 네온 테트라의 총 수를 확인할 수 있습니다. 주어진 시간.

현재 목록을 사용하여 항목 goby가 나타나는 횟수를 계산합니다.

print(fish.count('goby'))
Output
1

문자열 goby는 한 번만 나타나기 때문에 .count() 메서드를 사용하면 숫자 1이 반환됩니다.

이 방법을 정수 목록과 함께 사용해 봅시다. 우리 수족관은 모든 물고기를 잘 돌보기 위해 최선을 다하고 있습니다. 그래서 우리는 각 물고기의 나이를 추적하여 나이에 따라 식단이 물고기의 요구 사항을 충족하는지 확인합니다. 이 두 번째 목록인 fish_ages는 다른 목록인 fish의 물고기 유형에 해당합니다.

1년생 생선은 특별한 식이요법이 필요하기 때문에 1년생 생선이 몇 개인지 계산할 것입니다.

fish_ages = [1,2,4,3,2,1,1,2]
print(fish_ages.count(1))
Output
3

정수 1fish_ages 목록에서 3번 발생하므로 .count() 메서드를 사용하면 숫자 3이 반환됩니다.

list.sort()

list.sort() 메서드를 사용하여 목록의 항목을 정렬할 수 있습니다.

list.count()와 마찬가지로 list.sort()는 우리가 가지고 있는 특정 정수 값이 몇 개인지 더 명확하게 만들 수 있으며 정렬되지 않은 목록을 넣을 수도 있습니다. 숫자를 숫자 순서로.

정수 목록인 fish_ages를 사용하여 작동 중인 .sort() 메서드를 살펴보겠습니다.

fish_ages.sort()
print(fish_ages)
Output
[1, 1, 1, 2, 2, 2, 3, 4]

fish_ages와 함께 .sort()를 사용하면 정수 값이 순서대로 반환됩니다. 실제로 이러한 연령은 특정 물고기에 해당하므로 정렬하기 전에 원래 목록의 복사본을 만들고 싶을 것입니다.

list.clear()

목록 작업이 끝나면 list.clear() 메서드를 사용하여 목록에 포함된 모든 값을 제거할 수 있습니다.

지방 정부는 우리 수족관을 우리 도시 사람들이 즐길 수 있는 공공 공간으로 만들기 위해 인수하기로 결정했습니다. 우리는 더 이상 수족관에서 직접 작업하지 않기 때문에 더 이상 물고기 목록을 유지할 필요가 없으므로 물고기 목록을 지우겠습니다.

fish.clear()
print(fish)
Output
[]

fish에서 .clear() 함수를 사용한 후 출력으로 대괄호를 수신하여 이제 목록에 모든 항목이 없음을 알려줍니다.

결론

변경 가능하거나 변경 가능하고 순서가 지정된 요소 시퀀스로서 목록은 Python에서 매우 유연한 데이터 구조입니다. 목록 메서드를 사용하면 정교한 방식으로 목록을 사용할 수 있습니다. 목록 내포와 메서드를 결합하여 기존 목록을 기반으로 목록을 만들 수 있습니다.