[파이썬] 점프 투 파이썬 - 자료형(딕셔너리, 집합, 불(bool))

2021. 6. 30. 10:12공부한 내용/점프 투 파이썬

(모르는 것만 정리해놓음)

 

5. 딕셔너리 자료형

1) 딕셔너리 쌍 추가, 삭제하기

(1) 딕셔너리 쌍 추가

a = {1: 'a'}
a[2] = 'b'
a
#> {1: 'a', 2: 'b'}

 

(2) 딕셔너리 요소 삭제

del a[1]   #key가 1인 key:value 쌍 삭제
a
#> {2: 'b'}

 

(3) 딕셔너리에서 key 이용해 value 얻기

-리스트나 튜플, 문자열은 요소값 접근 시 인덱싱이나 슬라이싱 기법을 사용

-딕셔너리는 key를 이용해 value에 접근

grade = {'pey':10, 'julliet': 99}
grade['pey']   #key가 'pey'인 딕셔너리의 value를 반환
#> 10

 

2) 딕셔너리 관련 함수

(1) key()

-key만을 모아서 dict_keys 객체 반환

-리스트처럼 사용할 수 있지만, 리스트 관련 함수(append, insert, pop 등)는 사용 불가

-인덱스로 접근 불가

a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
a.keys()
#> dict_keys(['name', 'phone', 'birth'])

 

(2) values()

-value만을 모아서 dict_values 객체 반환

-인덱스로 접근 불가

a.values()
#> dict_values(['pey', '0119993323', '1118'])

 

(3) items()

-key와 value의 쌍을 튜플로 묶은 값을 모아서 dict_items 객체 반환

-인덱스로 접근 불가

a.items()
#> dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])

 

(4) clear()

-딕셔너리 내의 모든 요소 삭제

-빈 딕셔너리는 {}로 표현

a.clear()
a
#> {}

 

(5) in

-key가 딕셔너리 안에 있는지 조사

-key가 딕셔너리 안에 존재하면 True, 존재하지 않으면 False 반환

a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
'name' in a
#> True
'email' in a
#> False

 

(6) get()

-key에 대응되는 value 반환

-존재하지 않는 키 사용 시 None 반환 : 오류를 발생시키는 list와 차이가 있음

-key 값이 없을 경우 디폴트 값을 대신 반환하도록 지정 가능

a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
a.get('name')
#> 'pey'

print(a.get('nokey'))
#> None

a.get('foo', 'bar')   #(찾을 값, 해당 값이 key에 없을 때 반환할 디폴트 값)
#> 'bar'

 

 

6. 집합 자료형

1) 집합의 특징

-중복을 허용하지 않음

-순서가 없음: 인덱싱 사용 불가(딕셔너리와 유사)

(+) 인덱싱 사용을 원할 경우 리스트나 튜플로 변환 필요 (list(), tuplt() 함수 사용)

 

2) 교집합, 합집합, 차집합 구하기

(1) 교집합

-'&' 기호나 intersection() 함수 사용

s1 = set([1, 2, 3, 4, 5, 6])
s1 = set([1, 2, 3, 4, 5, 6])

s1 & s2
#> {4, 5, 6}

s1.intersection(s2)
#> {4, 5, 6}

 

(2) 합집합

-'|' 기호나 union() 함수 사용

s1 | s2
#> {1, 2, 3, 4, 5, 6, 7, 8, 9}

s1.union(s2)
#> {1, 2, 3, 4, 5, 6, 7, 8, 9}

 

(3) 차집합

-'-' 기호나 'difference() 함수 사용

s1 - s2
#> {1, 2, 3}
s1.difference(s2)
#> {1, 2, 3}

s2 - s1
#> {8, 9, 7}
s2.difference(s1)
#> {8, 9, 7}

 

3) 집합 관련 함수

(1) add()

-이미 만들어진 set 자료형에 값 하나 추가

s1 = set([1, 2, 3])
s1.add(4)
s1
#> {1, 2, 3, 4}

 

(2) update()

-여러 개의 값을 한꺼번에 추가

s1 = set([1, 2, 3])
s1.update([4, 5, 6])
s1
#> {1, 2, 3, 4, 5, 6}

 

(3) remove()

-특정 값을 제거

s1 = set([1, 2, 3])
s1.remove(2)
s1
#> {1, 3}

 

 

7. 불 자료형

1) 자료형의 참과 거짓

*문자열

-'python': 참

-"": 거짓

 

*리스트

-[1, 2, 3]: 참

-[]: 거짓

 

*튜플

-(): 거짓

 

*딕셔너리

-{}: 거짓

 

*숫자형

-0이 아닌 숫자: 참

-0: 거짓

 

*None: 거짓

 

2) 불 연산

*bool() 함수

-자료형의 참/거짓을 식별하는 내장 함수

bool('python')
#> True
bool('')
#> False