본문 바로가기
PROGRAMMING/PYTHON

[Python] 리스트, 튜플

by 안녕나는현서 2021. 4. 25.
728x90

- 리스트(List)

  • 많은 양의 데이터를 관리하는 자료형
  • 저장할 데이터의 수가 정해지지 않았을 경우
  • 대괄호([])로 작성
  • 리스트의 내부 값은 콤마(,)로 구분
  • 추가, 수정, 삭제 가능
  • 리스트에 저장된 각각의 값 : 요소
  • 요소 각각에는 위치가 지정되어 있음 : 1이 아닌 0부터 시작
  • 저장할 수 있는 데이터 타입과 깊이에 제약이 없음 : 리스트 안에 리스트, 숫자, 문자 등 가능

 

- 리스트 선언

# 리스트 선언
# 리스트명 = [요소1, 요소2, 요소3, ...]

# 비어있는 리스트
list1 = []

# 숫자를 요소로 가지는 리스트
list2 = [1,2,3]

# 문자를 요소로 가지는 리스트
list3 = ['A', 'B', 'C', 'D']

# 숫자와 문자를 함께 요소로 가지는 리스트
list4 = [1, 2, 'A', 'B']

# 리스트 자체를 요소로 가지는 리스트
list5 = [1, 2, ['A', 'B']]

 

 

- 리스트 인덱싱

  • 음수 인덱스는 뒤에서부터 시작
# 리스트 인덱싱 : 리스트[인덱싱]

list1 = [2, 5, 7, 9, 10]
print(list1[0])
print(list1[2]+list1[-1])

list5 = [1, 2, ['A', 'B']]
print(list5[2])
print(list5[2][1])

 

- 리스트 슬라이싱

# 리스트 슬라이싱 : 리스트[start인덱스 : end인덱스]

list3 = ['A', 'B', 'C', 'D']
print(list3[:2])
print(list3[1:])
print(list3[2:4])

 

- 리스트 연산

# 리스트 연산

a = [1, 2, 3]
b = [4, 5, 6]

# 1) 더하기
print(a+b)

# 2) 곱하기
print(a*3)

# 3) 리스트 길이 구하기
print(len(a))

 

- 리스트 값 추가 : append, insert, extend

# 리스트 값 추가

# 1) 리스트.append(값) : 맨 뒤에 값 추가
list6 = [0, 1, 2, 3, 4]
list6.append(5)
print(list6)
print('')

# 2) 리스트.insert(인덱스, 값) : 인덱스 위치에 값 추가
list6 = [0, 1, 2, 3, 4]
list6.insert(1,5)
print(list6)
print('')

# 3) 리스트1.extend(리스트2) : 리스트1에 리스트2의 요소 추가
list6 = [0, 1, 2, 3, 4]
list6.extend([5, 6])
print(list6)

 

- 리스트 값 수정

# 리스트 값 수정

# 1) 인덱싱 활용
list6 = [0, 1, 2, 3, 4]
list6[1] = 5
print(list6)
print('')

# 2) 슬라이싱 활용
list6 = [0, 1, 2, 3, 4]
list6[1:3] = [5]
print(list6)

list6 = [0, 1, 2, 3, 4]
list6[1:3] = [5, 6]
print(list6)

 

- 리스트 값 삭제 : del, remove

# 리스트 값 삭제

# 1) del 함수 사용
list6 = [0, 1, 2, 3, 4]
del list6[1]
print(list6)
list6 = [0, 1, 2, 3, 4]
del list6[:2]
print(list6)
print('')

# 2) 리스트.remove(값)
list6 = [0, 1, 2, 3, 4]
list6.remove(3)
print(list6)

 

- 리스트 관련 함수 : sort, reverse, index, pop, count

# 리스트 관련 함수

# 리스트 정렬 : 리스트의 요소를 오름차순으로 정렬
a = [ 1, 4, 3, 2]
a.sort()
print(a)

# 리스트 뒤집기
a.reverse()
print(a)

# sort + reverse : 리스트의 요소를 내림차순으로 정렬

# 위치 반환 : 리스트에 값이 있으면 인덱스 반환 / 없으면 오류
print(a.index(3))

# 리스트 요소 끄집어내기 : 리스트의 맨 마지막 요소를 반환하고 리스트에서 삭제
a = [ 1, 4, 3, 2]
b = a.pop()
print(b)
print(a)

# 리스트의 요소 개수 세기
a = [1, 2, 3, 1]
print(a.count(1))

 

- 튜플(Tuple)

  • 데이터의 개수가 정해져 있고 값이 고정되어야 하는 경우 사용
  • 소괄호( () )로 작성 : 소괄호는 생략 가능
  • 튜플의 내부 값은 콤마(,)로 구분
  • 추가, 수정, 삭제 불가능 : 리스트와 다른 점
  • 데이터가 바뀌지 않기에 리스트보다 처리 속도가 약간 더 빠름
# 인덱싱, 슬라이싱

t1 = 1, 2, 'a', 'b'
print(t1[1])
print(t1[1:3])

# 튜플 더하기

t1 = 1, 2, 'a', 'b'
t2 = (3, 4)
print(t1 + t2)

# 튜플 곱하기
print(t2*3)

# 튜플 길이 구하기
print(len(t1))

 

- 리스트와 튜플의 공통점과 차이점

공통점 차이점
  • 타입과 상관없이 일련의 요소를 가질 수 있음
  • 요소의 순서 관리
  • 리스트는 가변적(mutable), 튜플은 불변적(immutable)
  • 리스트는 요소가 몇 개 들어갈지 명확하지 않은 경우에 사용
  • 튜플은 요소 개수를 사전에 정확히 알고 있을 경우에 사용
728x90

'PROGRAMMING > PYTHON' 카테고리의 다른 글

[Python] 딕셔너리  (0) 2021.04.25
[Python] 반복문  (0) 2021.04.25
[Python] 조건문  (0) 2021.04.25
[Python] 연산자  (0) 2021.04.25
[Python] 변수, 자료형(숫자형, 문자열)  (0) 2021.04.25

댓글