Language/Python

[Python] 자료구조

S_sun 2024. 5. 13. 20:21

1. 리스트

  • 리스트명 = [요소1, 요소2, 요소3, ...]

1 - 1. 리스트 연산

  • '+' : 더하기
  • '*' : 반복하기
a = [1,2]
b = [3,4]
a+b               # [1, 2, 3, 4]
a * 3             # [1, 2, 1, 2, 1, 2]
(a *2) + (b * 2)  # [1, 2, 1, 2, 3, 4, 3, 4]

1 - 2. 리스트 함수

  • len() : 길이
  • 값 수정
a = [1, 2, 3, 4, 5]
a[0] = 0
a[4] = 7
print(a)         # [0, 2, 3, 7, 5]
a[2:4] = [9, 9]  # [0, 2, 9, 9, 5]
  • del : 삭제append() : 요소 추가
a = [1, 2, 3]
a.append(9)
a.append(7)
a.append(5)
print(a)     # [1, 2, 3, 9, 7, 5]
  • sort() : 정렬
a.sort()     # [1, 2, 3, 5, 7, 9]
  • reverse() : 뒤집기
a.reverse()  # [9, 7, 5, 3, 2, 1]
  • index() : 인덱스 값에 해당하는 값
  • count() : 값 개수
  • extend() : 확장 (요소 추가)
# append와 차이
a = [1, 2, 3]
b = [4, 5]
a.append(b)    # [1, 2, 3, [4, 5]]
a.extend(b)    # [1, 2, 3, 4, 5]

 

2. Tuple (튜플)

  • 리스트와 다른점
    • 리스트는 요소 값 생성, 삭제, 수정이 가능하지만, 튜플을 요소 값을 바꿀 수 없다. ⇒ 상수처럼
    • 인덱싱, 슬라이싱은 된다.
w = (1,)   # 하나일 경우 콤마
d = (1, 'b', 'c')
e = (1, 2, ('a', 'bc'))
d[0] = 5    # Error
del d[0]    # Error

 

3. Dictionary (딕셔너리)

  • Key와 Value를 한 쌍으로 갖는 자료형
    • {Key1:Value1, Key2:Value2, Key3:Value3 …}
    • 각 특별한 데이터 저장 방법
    • 단점 : 저장할 데이터가 많다. (Key, Value)
  • 생성
dic = {'name':'pey', 'phone':'01000001111'}
dic = {'color': ['red', 'green', 'blue'], 'age': [10, 20, 11], 'name': 'pey'}
  • 조회
dic = {'a':1, 'b':2, 'c':3}
dic['a']         # 1
dic.get('a')     # 1
dic['f']         # Error
dic('f')         # null 반환
dic('f', 'None') # 값이 없으면 None 반환
  • 추가, 수정, 삭제
a = {'a': 1}

# 추가
a['b'] = 2
# 수정
a['a'] = 3
# 삭제
del a['b']

3 - 1. 딕셔너리 함수

  • keys() : key 값들만 가지고 온다.
  • values() : value 값들만 가지고 온다.

 

4. Set (집합)

  • set은 중복 값 불가
  • unique 값만 넣을 수 있다.
  • 순서가 없다.
  • list와 set의 차이
    • list = [1, 2, 2, 3, 3, 4]
    • set = ([1, 2, 3, 4])
  • add() : 추가
  • remove() : 제거

4 - 1. 교집합

a = set([1, 2, 3, 4, 5]) 
b = set([3, 4, 5, 6, 7])

a & b     # {4, 5}

4 - 2. 합집합

a = set([1, 2, 3, 4, 5])
b = set([3, 4, 5, 6, 7])

a | b       # {1, 2, 3, 4, 5, 6, 7}
a.union(b)  # {1, 2, 3, 4, 5, 6, 7}

4 - 3. 차집합

a = set([1, 2, 3, 4, 5]) 
b = set([3, 4, 5, 6, 7])

a - b            # {[1, 2}
a.difference(b)  # {[1, 2}

 

5. Boolean

  • 참(True) = 1
  • 거짓(False) = 0
  • 빈 문자열 = False (빈칸은 True)
  • 요소가 없는 리스트, 튜플, 딕셔너리, Set = False
💡 어떤 자료형을 언제 쓰면 좋을지?

int : 나이, 년도, 월, 페이지 etc

float : 키, 몸무게, 온도 etc

str : 이름, 주소, 제목, 글쓴이 etc

list : int, float, str, list 등 묶음으로 저장 (데이터의 묶음)

tuple : list와 동일하지만 tuple은 수정 불가능

dict : 정의하기 나름

set : 남/여 같이 여러 동일 값이 들어오지 않게 함
728x90
반응형

'Language > Python' 카테고리의 다른 글

[Python] 함수 (Function)  (0) 2024.05.13
[Python] 문제  (0) 2024.05.13
[Python] 제어문 & 오류 & 예외처리  (0) 2024.05.13
[Python] 문법  (0) 2024.05.13
[Python] 개발환경 설정  (0) 2024.05.05