Programming/Python

[python] 주요 자료형, 이터러블, 이터레이터

Nobb 2025. 9. 5. 14:51

 

** 파이썬 - 기본적으로 동적 타이핑 언어

    > 하나의 컨테이너 안에 여러 자료형 섞어써도 됨  (다만 실무에선 혼합 잘 안하고 dict, list에나 씀)

 

파이썬 주요 내장 자료형

자료형 순서 변경 중복
리스트 (list) O O O
튜플 (tuple) O X O
문자열 (str) O X O
딕셔너리 (dict) X O key :  X
value : O
집합 (set) X O X

 

1) 시퀀스 자료형

 

  - list  : 가장 많이 쓰임. (배열, 스택, 큐 등으로  /  용도:  같은 종류의 데이터가 여러개 있을때  - 예) (여러 사람의 이름) )

li = [1,2,3,4]

# edit ====
li.append(5)	# [1,2,3,4,5]
li[0] = 0	# [0,2,3,4,5]
li.pop()	# [0,2,3,4]

 

  - tuple  : 변경불가한 고정된 값 묶음  (용도:  여러 요소가 모여 하나의 의미 가질때 - 예) (이름,나이,주소) )

t = ('Lemon', 'Cherry', 'Grape')		# 읽기 전용 리스트

t[0]	#'lemon'

 

- str  : 문자들의 시퀀스

s = "Hello"

print(s[0])		#H
print(s.upper())	#HELLO
# edit ====
s[0] = 'h'		#hello
s.pop()			#hell

 

 

2) 매핑 자료형

 

  - dict  : key-value 저장    (용도:  매핑, 빠른 검색, 카운팅, 해시기반 검색)

d = {"lemon" : 3, "banana" : 5}


# edit value =====
d["lemon"] = 7


# 문자열 빈도 세기*** =====
s = "Hello"
count = {}

for c in s:
	count[s] = count.get(c, 0) + 1
    
print(count)	#  {'h':1, 'e':1, 'l':2, 'o':1}


# 빠른 탐색 =====
d = {100: "레몬", 200: "체리"}
print(200 in d)	#True

 

3) 집합 자료형

  - set    : 중복 제거, 집합 연산 , 방문 체크

     > 중복 자동 제거됨

     > 순서 없음 ---> 정렬하려면 나중에 list로 바꿔야함

# 선언 =====
s = {1,2,3,3}
print(s)	# {1,2,3}	//중복 제거됨

# edit ======
s = set()
s.add("lemon")
s.add("purple")
s.add("lemon")

print(s)	# {'lemon', 'purple'} //중복 제거됨

 

 

 

이터러블  (iterable)

  : 순회할 수 있는 객체 (반복 가능 객체 / for문에 쓸 수 있는 모든 것)

    - 시퀀스 :  list, tuple, 문자열, range() 등  (순서번호 O)

    - 기본 :  dictionary, set 등  (순서번호 X)

 

이터레이터  (iterator)

 

 : 원소 하나하나에 접근할 수 있는 객체 ( 한번에 하나의 값을 꺼낼 수 있음 )

    - iter()로 꺼냄

    - next() 가능

 

    * 제너레이터  (generator)

       : yield로 하나씩 값 뽑아내는 특수 이터레이터