= {0:[1,2,3], 1:[2,3,4]}
dct 0] # 인덱싱 하는거 같네? dct[
[1, 2, 3]
최규빈
March 29, 2023
youtube: https://youtube.com/playlist?list=PLQqh36zP38-yyWy5IzZwxEX_dHX53cBJh
-
조건1: 키로 쓸 수 있는 자료형은 정해져 있다.
(예시1) dict의 키로 int를 사용
(예시2) dict의 키로 float을 사용 <– 이렇게 쓰는 사람 본적이 없어요
(예시3) dict의 키로 bool을 사용
(예시4) dict의 키로 str을 사용 (\(\star\))
(예시5) dict의 키로 list를 사용 \(\Rightarrow\) 불가능
(예시6) dict의 키로 tuple 사용 (\(\star\))
{(10, 20, 30, 40): 'guebin', (10, 20, 25, 40): 'hanni'}
(예시7) dict의 키로 dict사용 \(\Rightarrow\) 불가능
(예시8) dict의 키로 set사용 \(\Rightarrow\) 불가능
-
조건2: 키는 중복해서 쓸 수 없다.
(예시1)
-
없다… \(\Rightarrow\) dict는 컨테이너형!!
-
예시1
[['딸기', '사과'], ['오토바이', '자동차'], ['컴퓨터', '아이패드', '마우스']]
-
예시2: key, val을 서로 바꾸는 예시
{'a': (1, 0, 0, 0), 'b': (0, 1, 0, 0), 'c': (0, 0, 1, 0), 'd': (0, 0, 0, 1)}
-
예제1: 아래와 같은 리스트가 있다고 하자.
아래의 규칙에 의하여 lst의 각 원소의 값을 바꾸고 싶다고 하자.
변환전 | 변환후 |
---|---|
‘a’ | [1,0,0,0] |
‘b’ | [0,1,0,0] |
‘c’ | [0,0,1,0] |
‘d’ | [0,0,0,1] |
이를 구현하는 코드를 작성하고, 역변환하는 코드를 작성하라.
hint: 아래의 dct를 이용할 것
{'a': [1, 0, 0, 0], 'b': [0, 1, 0, 0], 'c': [0, 0, 1, 0], 'd': [0, 0, 0, 1]}
(풀이)
변환하는 코드를 구현하면
[[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1],
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]]
역변환하는 코드를 구현하면
(1단계)
{(1, 0, 0, 0): 'a', (0, 1, 0, 0): 'b', (0, 0, 1, 0): 'c', (0, 0, 0, 1): 'd'}
(2단계)
내생각
위와 같은 코드는 경우에 따라서 아래와 같은 복잡합 코드를 피할 수 있는 장점이 있다.
-
예제2: 아래와 같은 리스트가 있다고 하자. – 강의를 재촬영 했습니다.
['딸기', '사과', '바나나', '바나나', '오토바이', '자동차', '기차']
아래와 같은 규칙에 따라서 바꾸고 싶다고 하자.
변환전 | 변환후 |
---|---|
딸기 | 과일 |
사과 | 과일 |
바나나 | 과일 |
오토바이 | 탈것 |
자동차 | 탈것 |
버스 | 탈것 |
기차 | 탈것 |
(풀이1)
{'딸기': '과일',
'사과': '과일',
'바나나': '과일',
'오토바이': '탈것',
'자동차': '탈것',
'버스': '탈것',
'기차': '탈것'}
(풀이2) – 지난시간에 한 것
{'과일': ['딸기', '사과', '바나나'], '탈것': ['오토바이', '자동차', '버스', '기차']}
(풀이3)
{'딸기': '과일',
'사과': '과일',
'바나나': '과일',
'오토바이': '탈것',
'자동차': '탈것',
'버스': '탈것',
'기차': '탈것'}
-
일단 인덱스로는 못합니다.
-
딱히 하는 방법이 없어요.. 그리고 이걸 하는 의미가 없어요.. (원소에 접근해서 뭐하려고??)
-
이건 의미가 있음
-
in 연산자
in
연산자는 집합에서만 쓰는것은 아님-
합집합, 교집합, 차집합
-
부분집합
-
합집합
-
나머지 메소드는 스스로 찾아보세요
-
예시1
-
예제1: 아래의 list는 모두 몇 종류의 문자로 이루어져 있는가?
(풀이)
-
예제2: 아래의 txt에서 어떠한 종류의 문자가 각각 몇번씩 사용되었는지 빈도를 구하는 코드를 작성하라.
'asdkflkjahsdlkjfhlaksglkjdhflkgjhlskdfjhglkajhsdlkfjhalsdkf'
(풀이)
Oxford-III
: 1–5 // reference
아래는 이미지 파일명들이 저장된 string을 불러오는 코드이다.
이미지파일이 저장된 형식은 아래와 같다.
Abyssinian_1.jpg
British_Shorthair_129.jpg
note: British_Shorthair
와 같이 종 이름 사이에 _
가 들어있는 경우도 있음.
1
. txt를 적당히 변환하여 아래와 같은 list를 만들어라.
(['Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian'],
['BritishShorthair',
'BritishShorthair',
'BritishShorthair',
'BritishShorthair',
'BritishShorthair',
'BritishShorthair',
'BritishShorthair',
'BritishShorthair',
'BritishShorthair',
'BritishShorthair'])
hint1
hint2
(풀이1)
(풀이2)
(확인)
(['Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian'],
['BritishShorthair',
'BritishShorthair',
'BritishShorthair',
'BritishShorthair',
'BritishShorthair',
'BritishShorthair',
'BritishShorthair',
'BritishShorthair',
'BritishShorthair',
'BritishShorthair'])
2
. 그림파일에는 총 몇가지 종류의 고양이와, 몇가지 종류의 강아지가 있는가?
note: 고양이사진은 대문자로 시작하고, 강아지 사진은 소문자로 시작한다.
note: 12종의 고양이, 25종의 강아지가 있음
(풀이)
3
. 아래는 1번의 결과로 얻어진 lst의 첫 10개의 원소와 마지막 10개의 원소이다.
(['Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian',
'Abyssinian'],
['yorkshireterrier',
'yorkshireterrier',
'yorkshireterrier',
'yorkshireterrier',
'yorkshireterrier',
'yorkshireterrier',
'yorkshireterrier',
'yorkshireterrier',
'yorkshireterrier',
'yorkshireterrier'])
적당한 변환을 정의하여 lst를 아래와 같이 바꾸어라.
(['cat', 'cat', 'cat', 'cat', 'cat', 'cat', 'cat', 'cat', 'cat', 'cat'],
['dog', 'dog', 'dog', 'dog', 'dog', 'dog', 'dog', 'dog', 'dog', 'dog'])
(풀이1)
(풀이2)
4
. txt에는 강아지사진과 고양이사진이 모두 몇장씩 들어있는가?
(풀이)
5
. txt에 각 종별로 몇장의 사진이 있는지 조사하라.
{'beagle': 200,
'scottishterrier': 199,
'newfoundland': 200,
'Birman': 200,
'Bombay': 200,
'pug': 200,
'germanshorthaired': 200,
'samoyed': 200,
'Sphynx': 200,
'englishsetter': 200,
'Bengal': 200,
'MaineCoon': 200,
'Persian': 200,
'boxer': 200,
'staffordshirebullterrier': 191,
'Siamese': 200,
'bassethound': 200,
'wheatenterrier': 200,
'englishcockerspaniel': 200,
'Ragdoll': 200,
'yorkshireterrier': 200,
'EgyptianMau': 200,
'BritishShorthair': 200,
'keeshond': 200,
'RussianBlue': 200,
'saintbernard': 200,
'americanbulldog': 200,
'Abyssinian': 203,
'leonberger': 200,
'greatpyrenees': 200,
'japanesechin': 200,
'pomeranian': 200,
'chihuahua': 200,
'shibainu': 200,
'americanpitbullterrier': 200,
'miniaturepinscher': 200,
'havanese': 200}
(풀이)
{'scottishterrier': 199,
'RussianBlue': 200,
'newfoundland': 200,
'samoyed': 200,
'Birman': 200,
'germanshorthaired': 200,
'japanesechin': 200,
'yorkshireterrier': 200,
'miniaturepinscher': 200,
'leonberger': 200,
'pomeranian': 200,
'pug': 200,
'Siamese': 200,
'beagle': 200,
'shibainu': 200,
'Sphynx': 200,
'staffordshirebullterrier': 191,
'MaineCoon': 200,
'americanbulldog': 200,
'chihuahua': 200,
'keeshond': 200,
'Bengal': 200,
'saintbernard': 200,
'greatpyrenees': 200,
'boxer': 200,
'englishcockerspaniel': 200,
'Ragdoll': 200,
'EgyptianMau': 200,
'BritishShorthair': 200,
'Persian': 200,
'Abyssinian': 203,
'englishsetter': 200,
'bassethound': 200,
'Bombay': 200,
'americanpitbullterrier': 200,
'havanese': 200,
'wheatenterrier': 200}