Python 자료형-리스트, 튜플

배추·2025년 11월 9일

🐍 Python

목록 보기
3/19

Python의 리스트, 튜플 자료형에 대해 알아봅니다.


▶︎ 리스트

  • 리스트 안에는 어떠한 자료형도 포함할 수 있다.
  • 한 리스트 안에 서로 다른 자료형을 포함할 수 있다.
a = []
b = [1, 2, 3]
c = ['Life', 'is', 'too', 'short']
d = [1, 2, 'Life', 'is']
e = [1, 2, ['Life', 'is']]
  • 비어 있는 리스트는 a = list()로 생성할 수 있다.

🌟리스트의 인덱싱과 슬라이싱

인덱싱

  • 인덱싱을 적용할 수 있다.
a = [1, 2, 3]

a # [1, 2, 3]
a[0] # 1
a[-1] # 3
a[0] + a[2] # 4
  • 리스트를 다중으로 중첩해서 사용 가능.
b = [1, 2, 3, ['a', 'b', 'c']]

b[-1] # ['a', 'b', 'c']
b [3] # ['a', 'b', 'c']
b[-1][0] # 'a'

슬라이싱

  • 문자열과 동일.
a = [1, 2, 3, 4, 5]
a[0:2] # [1, 2]
  • 중첩된 리스트에서 슬라이싱.
a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]

a[2:5] # [3, ['a', 'b', 'c'], 4]
a[3][:2] # ['a', 'b']

🌟리스트 연산하기

더하기 +

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

a + b # [1, 2, 3, 4, 5, 6]

반복하기 *

a = [1, 2, 3]
a * 3 # [1, 2, 3, 1, 2, 3, 1, 2, 3]

리스트 길이 구하기 len 함수

a = [1, 2, 3]
len(a) # 3

리스트 연산 오류

a = [1, 2, 3]

a[2] + "hi" # 오류
str(a[2]) + "hi" # '3hi'
  • 더하기 위해서는 자료형이 같아야 한다.
  • 숫자와 문자열을 더해서 '3hi'를 만들고 싶다면 다음처럼 숫자 3을 문자 '3'으로 바꾸어야 한다.

🌟리스트 수정과 삭제

리스트의 값 수정

a = [1, 2, 3]
a[2] = 4
a # [1, 2, 4]

del 리스트 요소 삭제

  • del 객체: 객체를 삭제.
    • del a[x]: x번째 요솟값을 삭제.
a = [1, 2, 3]
del a[1]
a # [1, 3]
  • 슬라이싱 기법을 사용하여 리스트의 요소 여러 개를 한꺼번에 삭제.
a = [1, 2, 3, 4, 5]
del a[2:]
a # [1, 2]

🌟리스트 관련 함수

append

  • append(x): 리스트의 맨 마지막에 x를 추가.
a = [1, 2, 3]

a.append(4)
a # [1, 2, 3, 4]

a.append([5, 6])
a # [1, 2, 3, 4, [5, 6]]

sort

  • 리스트의 요소를 순서대로 정렬.
a = [1, 4, 3, 2]
a.sort()
a # [1, 2, 3, 4]

b = ['a', 'c', 'b']
b.sort()
b # ['a', 'b', 'c']

reverse

  • 리스트를 역순으로 뒤집어 준다. 리스트 요소들을 순서대로 정렬한 다음 다시 역순으로 정렬하는 것이 아니라 현재의 리스트를 그대로 거꾸로 뒤집는다.
a = ['a', 'c', 'b']
a.reverse()
a # ['b', 'c', 'a']

index

  • index(x): 리스트에 x 값이 있으면 x의 인덱스 값 반환.
a = [1, 2, 3]
a.index(3) # 2
a.index(1) # 0
a.index(0) # 값 0은 a 리스트에 존재하지 않기 때문에 오류

insert

  • insert(a, b): 리스트의 a번째 위치에 b를 삽입.
a = [1, 2, 3]

a.insert(0, 4)
a # [4, 1, 2, 3]

a.insert(3, 5)
a # [4, 1, 2, 5, 3]

remove

  • remove(x): 리스트에서 첫 번째로 나오는 x를 삭제.
a = [1, 2, 3, 1, 2, 3]
a.remove(3)
a # [1, 2, 1, 2, 3]

pop

-pop(): 리스트의 맨 마지막 요소를 반환하고 그 요소는 삭제.

a = [1, 2, 3]
a.pop() # 3
a # [1, 2]
  • pop(x): 리스트의 x번째 요소를 반환하고 그 요소는 삭제.
a = [1, 2, 3]
a.pop(1) # 2
a # [1, 3]

count

  • count(x): 리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 반환.
a = [1, 2, 3, 1]
a.count(1) # 2

extend

  • extend(x): x에는 리스트만 올 수 있으며 원래의 a 리스트에 x 리스트를 더하게 된다.
a = [1, 2, 3]
a.extend([4, 5])
a # [1, 2, 3, 4, 5]

b = [6, 7]
a.extend(b)
a # [1, 2, 3, 4, 5, 6, 7]
  • a.extend([4, 5]) = a += [4, 5] = a = a + [4, 5]

▶︎ 튜플

  • 몇 가지 점을 제외하곤 리스트와 거의 비슷.
  • 리스트와 다른 점
    • 리스트는 [], 튜플은 ()으로 둘러싼다.
    • 리스트는 요솟값의 생성, 삭제, 수정이 가능하지만, 튜플은 요솟값을 바꿀 수 없다.
      • 프로그램이 실행되는 동안 요솟값이 항상 변하지 않기를 바란다거나 값이 바뀔까 걱정하고 싶지 않다면 튜플을 사용.
      • 수시로 그 값을 변화시켜야할 경우라면 리스트를 사용.

+) Mutable과 Immutable

  • Mutable
    • 변경 가능.
    • 리스트, 딕셔너리, 집합
  • Immutable
    • 변경 불가능.
    • 정수, 실수, 문자열, 튜플

🌟튜플 생성

t1 = () # ()
t2 = (1,) # (1,)
t3 = (1, 2, 3) # (1, 2, 3)
t4 = 1, 2, 3 # (1, 2, 3)
t5 = ('a', 'b', ('ab', 'cd')) # ('a', 'b', ('ab', 'cd'))
  • 단지 1개의 요소만을 가질 때는 요소 뒤에 쉼표,를 반드시 붙여야 한다.
  • 소괄호()를 생략해도 된다.
  • 튜플 안에 튜플을 또 넣을 수 있다.

🌟튜플 요솟값 삭제, 변경 시 오류

t1 = (1, 2, 'a', 'b')
del t1[0] # TypeError: 'tuple' object doesn't support item deletion

t1 = (1, 2, 'a', 'b')
t1[0] = 'c' # TypeError: 'tuple' object does not support item assignment
  • 튜플은 삭제, 변경 안된다. -> 오류

🌟튜플 다루기

  • 요솟값을 변화시킬 수 없다는 점만 제외하면 리스트와 완전히 동일.
  • 튜플은 요솟값을 변경할수 없기 때문에 sort, insert, remove, pop과 같은 내장 함수가 없다.

인덱싱

t1 = (1, 2, 'a', 'b')
t1[0] # 1
t1[3] # 'b'

슬라이싱

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

튜플 더하기

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

튜플 곱하기

t2 = (3, 4)
t3 = t2 * 3
t3 # (3, 4, 3, 4, 3, 4)

길이 구하기

t1 = (1, 2, 'a', 'b')
len(t1) # 4
profile
난 🥬

0개의 댓글