개발 이야기/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']