Python/개념
03. [Python] 자료형 - 리스트
프로그린
2024. 4. 15. 13:37
리스트 생성
- 요소 목록을 대괄호([])로 감싸고 각 요소값은 쉼표(,)로 구분
- 리스트 요소값으로 숫자, 문자열, 리스트, 튜플 등 어떤 자료형 가질 수 있음.
리스트명 = [값1, 값2, 값3, ...]
리스트와 문자열의 유사 기능
인덱싱
- 파이썬에서는 0부터 인덱스 번호를 부여
- 음수를 사용하여 역순으로 인덱스를 부여
- 리스트에서 0번 인덱스는 첫번째 요소값을 나타내고, -1번 인덱스는 마지막 요소값을 나타냄.
- 문자열에서 0번 인덱스는 첫번째 문자를 나타내고, -1번 인덱스는 마지막 문자를 나타냄
list_a = ['a', 'b', 1, 2, 3]
str_b = 'HELLO'
list_a[0]
>>> 'a'
list_a[-1]
>>> 3
str_b[0]
>>> 'H'
str_b[-1]
>>> 'O'
슬라이싱
- 인덱스 범위를 지정하여 리스트나 문자열의 일부만 가져올 수 있음.
- 변수명[시작 번호:끝 번호]
- 끝번호는 포함되지 않음에 주의
list_a[1:3]
>>> ['b', 1]
list_a[:3]
>>> ['a', 'b', 1]
str_b[2:]
>>> 'LLO'
str_b[:]
>>> 'HELLO'
연산자를 활용한 합성과 복제
- + 연산자를 이용한 합성
[1, 2, 3] + ['a', 'b']
>>> [1, 2, 3, 'a', 'b']
'Hi' + 'Hello'
>>> 'HiHello'
- * 연산자를 이용한 복제
['영', '차'] * 3
>>> ['영', '차', '영', '차', '영', '차']
'Again&' * 0
>>> 'Again&Again&Again&Again&Again&'
len 함수의 활용
- 리스트에 len 함수를 적용하면 리스트에 속한 요소값의 개수를 반환
- 문자열에 len 함수를 적용하면 문자열의 길이를 반환
len(list_a)
>>> 5
len(str_b)
>>> 5
리스트의 수정과 삭제
- 인덱스 활용하여 요소값을 수정하거나 삭제할 수 있음
- 해당 내용은 문자열 자료형에는 적용 불가
list_b = [10, 20, 30, 40]
list_b[1] = 100
list_b
>>> [10, 100, 30, 40]
del list_b[1]
list_b
>>> [10, 30, 40]
리스트 관련 함수
함수 | 기능 | 입력(a = [1, 5, 4, 2]) | 출력 |
append() | 리스트의 끝에 요소 추가 | a.append(3) print(a) | [1, 5, 4, 2, 3] |
sort() | 요소를 순서대로 정렬 | a.sort() print(a) | [1, 2, 4, 5] |
reverse() | 역순으로 뒤집기 | a.reverse() print(a) | [2, 4, 5, 1] |
index() | 인덱스 반환 | a.index(5) | 1 |
insert(a, b) | a번째 위치에 b를 삽입 | a.insert(2, 3) print(a) | [1, 5, 3, 4, 2] |
remove() | 요소값 삭제 | a.remove(4) print(a) | [1, 5, 2] |
pop() | 리스트의 요소 끄집어 내기 | a.pop() | 2 |
count() | 리스트에 포함된 요소의 개수 반환 | a.count(1) | 1 |
extend() | 리스트 확장 | a.extend([5, 6]) print(a) | [1, 5, 4, 2, 'a', 'b'] |
remove vs pop
- pop()안을 비워두면 제일 마지막 요소값을 반환하고 리스트에서 해당 값은 제거됨.
- 이와 달리 remove는 함수 적용시 리스트에서 해당 값이 완전히 제거되는 것은 아니며 변경된 내용을 적용하기 위해서는 재할당 과정을 거쳐야 함.
b = ['a', '10', '20', [1, 2, 3]] b.remove('20') print(b) >>> ['a', '10', [1, 2, 3]] b.pop(0) >>> 'a' print(b) >>> ['10', '20', [1, 2, 3]] b.pop() >>> [1, 2, 3] print(b) >>> ['10', '20']
- index, remove를 적용할 대상값이 리스트에 중복되어 있으면 해당하는 값 중 가장 먼저 나오는 값에만 적용됨.
c = [10, 20, 30, 30, 30, 40, 40, 50] c.index(30) >>> 2 c.remove(40) print(c) >>> [10, 20, 30, 30, 30, 40, 50]