파이썬 자료형(문자열, 튜플, 딕셔너리, 집합)

seoyeon·2023년 4월 4일
1

코딩테스트 python

목록 보기
2/11
post-thumbnail
post-custom-banner

문자열 자료형

  • 문자열 변수 초기화 할 때 => 큰따옴표(") 작은따옴표(')
    • " '' "
    • ' "" '
data = 'Hello World'
print(data)


data = "Don't you know \"Python\""
print(data)

문자열 연산

  • 덧셈(+) 연산 => 연결
  • 곱하기(*) 연산 => 문자열이 여러번 더해짐
  • 인덱싱, 슬라이싱 이용 가능
    • but 인덱스값 변경x
a="Hello"
b="World"
print(a + " " + b)
print(a*3)

a= "ABCDEF"
# 문자열 a의 두번째부터 세번째 자리가 출력됨 => CD
print(a[2:4])

# 특정 문자열을 바꾸는 것은 안됨
# a[2] = 'a'

튜플 자료형

리스트와의 차이!

  • 한번 선언된 값을 변경x
  • 튜플은 소괄호 () 이용
  • 리스트에 비해 공간효율적
a = (1,2,3,4,5,6,7,8,9)

# 네번째 원소만 출력
print(a[3])

# 1,2,3번재 값
# (2,3,4)
print(a[1:4])

# 오류발생
# a[2] = 7

튜플을 사용하면 좋은 경우

  • 서로 다른 성질의 데이터를 묶어서 관리해야할 때
    • 최단경로 알고리즘(비용, 노드번호)의 형태로 튜플 자료형 사용
  • 데이터의 나열을 해싱(Hasing)의 키 값으로 사용해야 할 때
    • 튜플은 변경x 리스트와 다르게 키값 으로 사용될 수 있다!!
  • 리스트보다 메모리를 효율적을 사용해야할 때

딕셔너리 자료형

  • 키(key)와 값(Value)의 쌍을 데이터로 가지는 자료형
  • 키와 값의 쌍을 데이터로 가지며, 원하는 변경 불가능한 자료형을 키로 사용 가능 => 키값으로 접근 가능
  • 딕셔너리는 해시테이블(Hash Table)을 이용하므로 데이터 조회, 수정에 있어서 O(1)의 시간에 처리가능
data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
daata['코코넛'] = 'Coconut'

# 출력 됨
if '사과' in data:
	print("'사과'를 키로 가지는 데이터가 존재
  • 특정한 키 존재하는지 저장하고 관리하고 검색할때 리스트보다 효육적

  • 키 데이터만 뽑아서 리스트로 이용할 때 => keys()

  • 값 데이터만 뽑아서 리스트로 이용할 때 => values()

data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
daata['코코넛'] = 'Coconut'

# 키 데이터만 담은 리스트
key_list = data.keys()

value_list = data.values()
print(key_list)
print(value_list)

# 각 키에 따른 값을 하나씩 출력
for key in key_list:
    print(data[key])
    
# 이런식으로도 선언 가능
data2 = {
	'김미림' : 33,
    '이미림' : 44
}

집합 자료형

  • 중복 허용

  • 순서가 없다

  • 리스트 혹은 문자열을 이용해서 초기화 가능
    => set() 함수 이용

  • 혹은 중괄호({})안에 각 원소를 콤마(,)를 기준으로 구분하여 삽입함으로써 초기화 가능

  • 데이터의 조회 및 수정에 있어서 O(1)의 시간에 처리가능

# 집합 자료형 초기화 방법1
data = set([1,1,2,3,4,4,5])

#집합 자료형 초기화 방법 2
data = {1,1,2,3,4,4,5}

# 출력 결과(중복제거0
# {1,2,3,4,5}

집합자료형의 연산

  • 합집합
  • 교집합
  • 차집합 A-B
a = set([1,2,3,4,5])
b = set([3,4,5,6,7])

# 합집합 => {1,2,3,4,5,6,7}
pritn(a | b)

# 교집합 => {3,4,5}
print(a & b)

# 차집합 => {1,2}
print(a-b)

집합 자료형 관련 함수

data = set([1,2,3])

# 추가
data.add(4)

# 여러개 추가
data.update([5,6])

# 삭제
data.remove(3)

딕셔너리 자료형, 집합 자료형의 특징

  • 리스트, 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있음
  • 딕셔너리 자료형, 집합자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없음
    => 딕셔너리의 키(Key) 혹은 집합의 원소(Element)를 이용해 O(1)의 시간 복잡도로 조회
profile
항상 질문하는 개발자가 되고 싶습니다✋
post-custom-banner

0개의 댓글