튜플
-> 불변, 상수의 리스트라고 할 수 있다. <생성한 후 수정불가>
요소가 하나 있을 때는 마지막 요소의 뒤에도 ','를 붙인다. ()를 이용한다.
튜플을 출력할 때는 (괄호)( )를 포함하지만 정의할 때는 필요없다. (있어도 좋음)
한번에 여러 변수에 할당할 수 있다.
이를 튜플 언패킹이라고 한다.
marx_tuple = ('Groucho','Chico','Harpo')
a,b,c = marx_tuple
print(a)
print(b)
print(c)
딕셔너리
{}를 이용한다.
값에 사용하는 고유한 키를 지정한다.
딕셔너리의 키는 반드시 유일해야한다
만약 같은 키를 두 번 이상 사용하면 마지막 값이 승리한다.
update() : 딕셔너리 결합
del : 키를 이용해 항목 삭제
python = {
'Chapman' : 'Graham',
'Cleese' : 'John'
}
others = {'Marx' : 'Groucho'}
python.update(others)
print(python)
del python['Marx']
print(python)
만약 결합할 딕셔너리에 같은 키값을 가지고 있는 항목이 있다면 others의 값이 승리한다.
get() : 키가 존재하면 값을, 없으면 none을 얻는다. 옵션값을 지정할 수 있다.
copy() : 딕셔너리의 키와 값을 또 다른 딕셔너리로 복사하기 위해서
items() : 딕셔너리의 모든 쌍의 키와 값을 얻기 위해서 이용 -> 각각의 키와 값은 튜플로 반환
python = {
'Chapman' : 'Graham',
'Cleese' : 'John'
}
print(list(python.items()))
셋
값은 버리고 키만 남은 딕셔너리 (각 키는 유일해야한다) (딕셔너리와 마찬가지로 순서X)
존재여부를 판단하기 위해서 셋을 사용한다.
set(), 중괄호({})에 콤마로 구분된 값이 하나이상!! : 셋의 생성
{}는 딕셔너리가 먼저 등장해서 중괄호를 이미 차지하고 있기때문에
{}을 이용해 set을 만들고 싶을 때는 안에 원소를 하나 이상 넣어주어야한다.
<drinks>
drinks = {
'martini' : {'vodka', 'vermounth'},
'black russian' : {'vodka', 'kahlua'},
'white russian' : {'cream', 'kahlua','vodka'},
'manhattan' : {'rye', 'vermounth','bitters'},
'screwdriver' : {'vodka', 'orange juice'}
}
1. vermounth 또는 orange juice가 들어있는 술 이름을 반환
for name, content in drinks.items() :
if content & {'vermounth','orange juice'} :
print(name)
items는 튜플형식으로 반환하기에 이름은 name, 내용은 content에 저장된다.
&는 교집합을 찾기에 해당 content와 {}내부의 내용을 비교하여 교집합이 있으면 참이되어
이름을 반환한다.
2. vodka는 들어있지만 cream이나 vermouth는 들어있지 않는 술 이름
for name, content in drinks.items() :
if 'vodka' in content and not content & {'cream','vermounth'} :
print(name)
인터섹션(교집합)
유니온(합집합)
디퍼런스(차집합)
bruss = drinks['black russian']
wruss = drinks['white russian']
print(bruss & wruss)
print(bruss.intersection(wruss))
print(bruss | wruss)
print(bruss.union(wruss))
print(bruss - wruss)
print(bruss.difference(wruss))
3-6 자료구조 비교하기
리스트 : 대괄호
튜플 : 콤마
딕셔너리 : 중괄호
리스트와 튜플은 정수오프셋을 사용하고, 딕셔너리는 키를 이용한다.
딕셔너리의 키는 불변하기에 리스트, 딕셔너리, 셋은 될 수 없다.
그러나 튜플은 가능하다.
3장 연습문제
책에 오타가 조금씩있다!
'프로그래밍 > 파이썬🐍' 카테고리의 다른 글
(5)처음시작하는파이썬_[5장 모듈,패키지,프로그램] (0) | 2022.01.13 |
---|---|
(4)처음시작하는 파이썬_[4장파이크러스트:코드구조] (0) | 2022.01.11 |
(2)처음시작하는파이썬_[3-1:3-2] (0) | 2022.01.10 |
(1)처음시작하는파이썬[chapter2] (1) | 2022.01.10 |
[완독](11)점프투파이썬_6장 파이썬 프로그래밍, 어떻게 시작해야 할까? (0) | 2022.01.09 |