개발 이야기/Python
Python - 05. 리스트(list) 자료형
Crazy Lazy
2021. 7. 17. 11:13
1. 리스트(list) 정의 및 특징.
- 자료형의 집합(또는 모음).
- 대괄호([])로 감싸고, 쉼표(,)로 구분.
- 복합적인 자료형을 요소로 사용 가능.
- 중첩되어 생성 가능.
- 순서 보장. (인덱싱 사용 가능)
리스트 생성 예시)
# 빈 리스트.
a=list()
b=[]
# 숫자형 리스트
c=[1,2,3]
# 문자열 리스트
d=["a","b","c"]
# 복합 리스트
e=[1,2,"a","b"]
# 중첩 리스트
f=[1,2,["a","b"]]
2. 리스트의 인덱싱과 슬라이싱
리스트의 인덱싱은 문자열과 동일. 0부터 시작 -1이 마지막을 의미.
# 리스트 선언.
a=['apple','banana','orange','mango']
b=[1,2,3,[4,5,6]]
c=[1,2,["a","b",["abc","def"]]]
# 리스트 인덱싱. (0부터 시작, -1은 마지막)
a[2] # 결과 : 'orange'
b[0] # 결과 : 1
c[3] # 결과 : 오류
a[-1] # 결과 : 'mango'
# 중첩 리스트 인덱싱.
b[-1] # 결과 : [4,5,6]
b[-1][0] # 결과 : 4
b[3][0] # 결과 : 4
c[2][2][0] # 결과 : 'abc'
# 리스트 슬라이싱.
a[0:2] # 결과 : ['apple', 'banana']
b[1:2] # 결과 : [2]
c[1:2] # 결과 : [2]
a[:2] # 결과 : ['apple', 'banana']
b[2][:1] # 결과 : 오류
b[3][:1] # 결과 : [4]
c[2][2][1:] # 결과 : ['def']
3. 리스트 연산
병합(+)과 반복(*) 수행 가능.
a=[1,2,3]
b=[3,4,5]
# 리스트 병합
a+b # 결과 : [1, 2, 3, 3, 4, 5]
# 리스트 반복
a*3 # 결과 : [1, 2, 3, 1, 2, 3, 1, 2, 3]
# 리스트 길이(항목 수)
len(a) # 결과 : 3
len(a+b) # 결과 : 6
4. 리스트 요소 변경
자체 제공 함수인 del 을 이용한 삭제. (삭제 기능을 하는 remove, pop 함수들은 하기 리스트 관련 함수에서 참고)
a=[1,2,3]
b=[1,2,3,4,5,6]
# 리스트 값 수정
a[2]=4
a # 결과 : [1, 2, 4]
# 리스트 요소 삭제
del a[1]
a # 결과 : [1, 4]
del b[2:]
b # 결과 : [1, 2]
5. 리스트 관련 함수
리스트 변수 뒤에 . 를 붙인 후 함수명을 기재하여 사용.
a=["a","c","b","d"]
b=["e","f"]
# append : 리스트 요소 추가
a.append("a")
a # 결과 : ['a', 'c', 'b', 'd', 'a']
# sort : 리스트 정렬
a.sort()
a # 결과 : ['a', 'a', 'b', 'c', 'd']
# reverse : 리스트 역정렬
a.reverse()
a # 결과 : ['d', 'c', 'b', 'a', 'a']
# index : 위치 반환
a.index("b") # 결과 : 2
a.index("z") # 결과 : 오류
# insert : 리스트 요소 삽입
a.insert(0,"x")
a # 결과 : ['x', 'd', 'c', 'b', 'a', 'a']
# remove : 리스트 요소 삭제
a.remove("a")
a # 결과 : ['x', 'd', 'c', 'b', 'a']
# pop : 리스트 요소 꺼내기 (인자 생략 시 마지막 요소)
a.pop() # 결과 : 'a'
a # 결과 : ['x', 'd', 'c', 'b']
a.pop(0) # 결과 : 'x'
a # 결과 : ['d', 'c', 'b']
# count : 리스트 에 포함된 요소 수량 반환
a.count("c") # 결과 : 1
# extend : 리스트 확장
a.extend(["h","i"]) # a+=["h","i"] 와 동일
a # 결과 : ['d', 'c', 'b', 'h', 'i']
a.extend(b)
a # 결과 : ['d', 'c', 'b', 'h', 'i', 'e', 'f']