리스트는 편리한 연산자와 메소드들을 제공한다. 리스트를 다룰 때 알아두어야 할 기초 연산들을 살펴보자.
리스트 합병과 반복
두 개의 리스트를 합칠 때에는 연결 연산자인 + 연산자를 사용할 수 있다.
mario_characters = ["Mario", "Peach", "Yoshi"]
poketmon_characters = ["Pikachu", "Meowth"]
characters = mario_characters + poketmon_characters
print(characters) # ['Mario', 'Peach', 'Yoshi', 'Pikachu', 'Meowth']
리스트를 반복할 때에는 반복 연산자인 * 연산자를 사용하면 된다.
values = [1, 2, 3] * 3
print(values) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
리스트의 길이
len() 함수는 리스트의 길이를 계산하여 반환한다.
poketmon_characters = ["Pikachu", "Charmander", "Squirtle", "Jigglypuff", "Meowth"]
len(poketmon_characters) # 5
요소 추가
append() 메소드를 사용하면 리스트의 끝에 새로운 요소를 추가할 수 있다.
fruits = []
fruits.append('banana')
fruits.append('apple')
fruits.append('kiwi')
fruits.append('orange')
print(fruits) # ['banana', 'apple', 'kiwi', 'orange']
요소 삽입
insert() 메소드를 사용하면 기존 리스트의 특정한 위치에 새로운 요소를 추가할 수 있다. append() 메소드는 리스트의 "끝"에 새로운 요소를 추가한다는 점을 유의하자.
fruits = ['banana', 'apple', 'kiwi', 'orange']
fruits.insert(2, 'grape')
print(fruits) # ['banana', 'apple', 'grape', 'kiwi', 'orange']
'grape' 항목이 2번 인덱스에 추가되었고 이후의 항목들은 모두 뒤로 한 칸 이동한 것을 볼 수 있다.
요소 찾기
in 연산자를 사용하면 리스트에 어떤 요소가 있는지 여부를 알 수 있다.
poketmon_characters = ["Pikachu", "Charmander", "Squirtle", "Jigglypuff", "Meowth"]
if "Pikachu" in poketmon_characters:
print("Pikachu가 리스트에 존재합니다.")
단순히 유무를 넘어 리스트에서의 특정 요소의 위치를 알고 싶다면 index() 메소드를 사용한다.
poketmon_characters = ["Pikachu", "Charmander", "Squirtle", "Jigglypuff", "Meowth"]
index = poketmon_characters.index("Squirtle")
print(index) # 2
만약 인덱스에 없는 항목을 index()로 찾으면 오류가 발생하고 프로그램이 중지되기 때문에 if문과 in 연산자를 사용해서 먼저 해당 항목이 리스트에 있는지 확인한 후에 인덱스를 찾는 것이 권장된다.
요소 삭제하기
pop() 메소드는 인자로 받은 인덱스 번호에 해당하는 항목을 삭제하고, 동시에 반환한다. 원본 리스트에는 지장이 없으며, 삭제한 항목을 반환하여 가지고 있다는 점에서 '잘라내기'라고 생각하면 이해가 쉬울 듯하다.
characters = ["Pikachu", "Charmander", "Squirtle", "Jigglypuff", "Meowth"]
print(characters.pop(1)) # Charmander
print(characters) # ['Pikachu', 'Squirtle', 'Jigglypuff', 'Meowth']
remove() 메소드도 역시 요소를 삭제하지만, 인덱스가 아닌 항목을 인자로 받으며, 원본 리스트를 변경한다는 점에서 pop() 메소드와 차이가 있다.
characters = ["Pikachu", "Charmander", "Squirtle", "Jigglypuff", "Meowth"]
characters.remove("Jigglypuff")
print(characters) # ['Pikachu', 'Charmander', 'Squirtle', 'Meowth']
특정 요소의 개수 세기
count() 메소드는 리스트에서 지정한 값이 몇 번 등장하는지, 그 개수를 세서 반환한다.
animals = ["dog", "cat", "bird", "dog", "dog", "horse"]
dog_count = animals.count("dog")
print(dog_count) # 3
요소 정렬하기
sort() 메소드는 원본 리스트를 기본적으로 오름차순으로 정렬한다. 숫자와 문자 모두 순서에 맞게 정렬하는데, 그 기준은 아스키코드표에 따른 정렬이기 때문에 대소문자가 혼합된 문자열의 경우 대문자가 먼저 나오고 그 후 소문자를 정렬한다.
num_list = [20, 10, 30, 50, 40]
num_list.sort()
print(num_list) # [10, 20, 30, 40, 50]
str_list = ["apple", "banana", "kiwi", "orange", "grape"]
str_list.sort()
print(str_list) # ['apple', 'banana', 'grape', 'kiwi', 'orange']
원본 리스트를 변경하지 않고 정렬된 새로운 복사본을 얻고 싶다면 sort()가 아닌 sorted() 메소드를 사용하면 된다.
'Language > Python' 카테고리의 다른 글
[Python] 파이썬 리스트 복사하기 (얕은 복사 vs 깊은 복사) (0) | 2025.01.15 |
---|---|
[Python] 파이썬 리스트 비교, 정렬 (0) | 2025.01.15 |
[Python] 파이썬 인덱싱과 슬라이싱 (0) | 2025.01.14 |
[Python] 파이썬 시퀀스 데이터 타입 (0) | 2025.01.14 |
[Python] 파이썬 리스트 이해하기 (0) | 2025.01.14 |