Python - 딕셔너리, 집합, bool 자료형

hanyoko·2023년 7월 6일

PYTHON

목록 보기
6/11
post-thumbnail

딕셔너리 자료형 {}

key와 value를 가지는 객체 자료형

  • key는 중복이 되지 않으며, 중복하여 입력할 경우 가장 마지막에 입력한 것을 저장한다.
  • 리스트나 튜플처럼 순차적으로 요소값을 구하지 않고 key를 통해 value에 접근한다
자료명={key:value, key:value}

속성 추가하기

자료명[key]=value

dic['isJob'] = True
print(dic)

#{'name': 'green', 'phone': '01012341234', 'age': 30, 'isJob': True}

value값 접근

자료명[key]

print(dic['name'])
#green

삭제하기

del 자료명[key]

del dic['phone']
print(dic)
#{'name': 'green', 'age': 30, 'isJob': True}

dic2[4] = 'd'
print(dic2)
#{1: 'a', 2: 'b', 3: 'c', 4: 'd'}

dic3 = {'name': 'G', 'age': 30, 'name': 'b'}
print(dic3)
#{'name': 'b', 'age': 30}

딕셔너리 내장함수

keys()

  • 파이썬 2.7 버전까지는 key를 리스트로 반환, 이후 버전부터는 dict_keys객체로 반환
  • 딕셔너리의 key만 리스트로 반환
딕셔너리.keys()

values()

  • 파이썬 2.7 버전까지는 value를 리스트로 반환, 이후 버전부터는 dict_values객체로 반환
  • 딕셔너리의 value만 리스트로 반환
딕셔너리.values()

items()

  • 파이썬 2.7 버전까지는 리스트로 반환, 이후 버전부터는 dict_items객체로 반환
  • key와 value의 쌍을 튜플로 묶은 값을 dict_items객체로 반환
딕셔너리.items()

dic={1:"a",2:"b",3:"c"}
dicItems=dic.items()
print(dicItems)

#dict_items([(1, 'a'), (2, 'b'), (3, 'c')])

clear()

  • key:value쌍을 모두 지운다.
딕셔너리.clear()

dic3 = {'name': 'G', 'age': 30, 'name': 'b'}

dic3.clear()
print(dic3)
#{}

get()

  • key를 입력해 value를 반환한다.
딕셔너리.get[key]

dic4 = {'name': '구름', 'age':3, 'color': 'white'}
print(dic4.get('name'))
print(dic4.get('age'))

#구름
#3
  • 존재하지 않는 key로 접근할 때 딕셔너리[key]는 오류가 발생하지만, 딕셔너리.get(key)None을 반환한다.

in()

  • 해당 key가 딕셔너리 안에 있는지 조사한다.
  • 있으면 True 없으면 False를 반환한다.
key in 딕셔너리

dic4 = {'name': '구름', 'age':3, 'color': 'white'}

print('name' in dic4)
print('a' in dic4)

#True
#False

집합 자료형 set

  • 파이썬 2.3부터 지원
  • 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형
  • 중복을 허용하지 않는다.
    자료명= set(자료)
s1 = set([1, 2, 3, 4, 5])
s2 = set("hello")
print(s1)
print(s2)
print(list(s2))

#{1, 2, 3, 4, 5}
#{'h', 'l', 'e', 'o'}
#['h', 'l', 'e', 'o']

s3 = set([1, 2, 1, 3, 5, 4, 5, 2]) 
print(s3)  #중복불가
#{1, 2, 3, 4, 5}

l3 = list(s3)
print(l3)
#[1, 2, 3, 4, 5]

내장함수

add

값을 한개 추가한다.

집합.add(value)

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

numberset1.add(20)
print(numberset1)

#{1, 2, 3, 4, 5, 6, 20}

update

값을 여러개 추가한다.

집합.update([1,2])

numberset1 = set([1, 2, 3, 4, 5, 6])
numberset1.update([100, 200, 300])
print(numberset1)

#{1, 2, 3, 4, 5, 6, 100, 200, 300}

remove

특정한 값을 제거한다.

집합.remove(value)

numberset1 = set([1, 2, 3, 4, 5, 6, 100, 200, 300, 20])
numberset1.remove(100)
print(numberset1)

#{1, 2, 3, 4, 5, 6, 200, 300, 20}

& intersection

두가지의 집합 자료형의 교집합만 반환한다.

집합1&집합2

집합1.intersection(집합2)


numberset1 = set([1, 2, 3, 4, 5, 6])
numberset2 = set([4, 5, 6, 7, 8, 9])

print(numberset1 & numberset2)
print(numberset1.intersection(numberset2))

#{4, 5, 6}
#{4, 5, 6}

| union

두가지의 집합 자료형을 합쳐 반환한다.
중복된 값은 하나만 들어간다.

집합1|집합2

집합1.union(집합2)


numberset1 = set([1, 2, 3, 4, 5, 6])
numberset2 = set([4, 5, 6, 7, 8, 9])

print(numberset1 | numberset2)
print(numberset1.union(numberset2))

#{1, 2, 3, 4, 5, 6, 7, 8, 9}
#{1, 2, 3, 4, 5, 6, 7, 8, 9}

- difference

집합1의 값 중 집합2의 값에 포함되지 않는 차집합을 반환한다.

집합1-집합2

집합1.difference(집합2)


numberset1 = set([1, 2, 3, 4, 5, 6])
numberset2 = set([4, 5, 6, 7, 8, 9])

print(numberset1 - numberset2)
print(numberset1.difference(numberset2))

#{1, 2, 3}
#{1, 2, 3}

불 자료형

  • True와 False를 나타내는 자료형
  • 문자열이 빈문자열이면 False, 요소가 있으면 "a" : True
  • 숫자 0이 아닌 숫자는 True, 0이면 False
  • None은 False
  • 문자열, 리스트, 딕셔너리, 튜플 값이 비어있으면 False
print(bool(0)) #False
print(bool(-1)) #True
print(bool("")) #False
print(bool(" ")) #True
print(bool("aaa")) #True
print(bool([])) #False
print(bool({})) #False
print(bool(())) #False

0개의 댓글