30/120

김건호·2022년 3월 23일
0

튜플

리스트와 비슷하지만 다른 점이 있음
튜플은 소괄호 ()로 되어 있음
튜플은 값을 바꿀 수 없음

가장 큰 2가지 차이점

  • 요소가 1개이더라도 반드시 ,를 붙여야 함
>>> t1=(2,)
>>> t2=(2)
>>> type(t1)
<class 'tuple'>
>>> type(t2)
<class 'int'>
  • 괄호 생략 가능
>>> t3=1,2,3
>>> type(t3)
<class 'tuple'>

인덱싱, 슬라이싱, 더하기와 곱하기

  • 인덱싱
>>> t1=(1,2,'a','b')
>>> t1[0]
1
  • 슬라이싱
>>> t1=(1,2,'a','b')
>>> t1[1:]
(2, 'a', 'b')
  • 더하기
>>> t1=(1,2,'a','b')
>>> t2=(3,4)
>>> t1+t2
(1, 2, 'a', 'b', 3, 4)
  • 곱하기
>>> t2=(3,4)
>>> t2*3
(3, 4, 3, 4, 3, 4)

딕셔너리

key와 value로 한 쌍을 갖는 자료형

{key1:value1,key2:valuse2...}

key:valuse 형태로 이루어지고 , 로 구분

요소 추가

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

요소 삭제

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

사용법

  • key 사용해 value 얻기
>>> grade={'pey':10,'ken':99}
>>> grade['pey']
10
>>> grade['ken']
99

주의 사항

  • key에 리스트는 사용 불가(형태가 변하지 않는 자료형만 가능 숫자 문자열 튜플)
  • key는 고유한 값이므로 중복 사용시 하나를 제외하고 모두 무시 됨

관련 함수

keys()

딕셔너리의 key만 모아 dict_keys 객체 리턴

>>> a={'name':'ken','phone':'000000','birth':'4444'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])

dict_keys 활용

>>> for k in a.keys():
...     print(k)
...
name
phone
birth

values()

keys와 같게 value만 얻는 함수

>>> a
{'name': 'ken', 'phone': '000000', 'birth': '4444'}
>>> a.values()
dict_values(['ken', '000000', '4444'])

items()

key와 value를 튜플로 묶은 갑승ㄹ dict_items객체로 리턴

>>> a.items()
dict_items([('name', 'ken'), ('phone', '000000'), ('birth', '4444')])

clear()

딕셔너리 전부 삭제 {}는 빈 딕셔너리를 나타냄

>>> a
{'name': 'ken', 'phone': '000000', 'birth': '4444'}
>>> a.clear()
>>> a
{}

get(key)

key값으로 value를 얻는 함수

>>> a.get('name')
'ken'

인덱싱은 존재하지 않는 key로 검색 시 에러로 처리하지만
get은 none을 리턴
python
코드를 입력하세요

>>> a.get('age')
>>> a['age']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

in

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

>>> 'name' in a
True

존재 시 True 없을 시 False

집합

집합은 파이썬 2.3부터 지원한 자료형
set키워드를 이용해 만들 수 있음

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

집합 자료형의 특징

  • 중복 허용하지 않음
  • 순서가 없음
>>> se=set("Hello")
>>> se
{'l', 'e', 'o', 'H'}

따라서, 값에 접근하려면 리스트나 튜플로 먼저 변형해야 함

>>> s1
{1, 2, 3}
>>> l1=list(s1)
>>> l1
[1, 2, 3]
>>> l1[0]
1

활용법

>>> s1=set([1,2,3,4,5,6])
>>> s2=set([4,5,6,7,8,9])

교집합(intersection)

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

합집합(union)

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

차집합(difference)

>>> s1-s2
{1, 2, 3}
>>> s1.difference(s2)
{1, 2, 3}
>>> s2.difference(s1)
{8, 9, 7}

값 1개 추가하기(add)

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

값 여러 개 추가(update)

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

특정 값 제거(remove)

>>> s1
{1, 2, 3, 4}
>>> s1.remove(4)
>>> s1
{1, 2, 3}
profile
Ken, 🔽🔽 거노밥 유튜브(house icon) 🔽🔽

0개의 댓글