02-3 ~ 02-6 (p.72 ~ p.101)
공부 계획을 짰을 때는 30일 치를 15일 치로 줄여서 공부 분량이 너무 많나 걱정했지만 이틀 동안 해보니 아직까지는 생각보다 할만한 거 같다. 이 기세로 쭉 가려고 노력해야겠다.

02-3 리스트 자료형
# 리스트 자료형의 예
a = [1, 2, 3, 4, 5]
b = [1, 2, 'Hello', 'World']
c = [1, 2, ['Hello', 'World']]
* 리스트도 문자열처럼 인덱싱과 슬라이싱, 연산이 가능.
# 2중 리스트에서 특정 요소 인덱싱
a = [1, 2, ['Hello', 'World']]
a[2][0]
>>> 'Hello'
# (슬라이싱도 동일한 방법으로)
# 리스트의 수정, 삭제
a = [1, 2, 3]
a[2] = 4
a
>>> [1, 2, 4] # 수정
del a[:2]
a
>>> [4] # 삭제
리스트 관련 함수
# 리스트에 요소 추가 (append)
a = [1, 2, 3]
a.append(4)
a
>>>[1, 2, 3, 4]
a.append([5, 6])
a
>>>[1, 2, 3, 4, [5, 6])
# 리스트 정렬 (sort)
a = [1, 3, 2, 4]
a.sort()
a
>>> [1, 2, 3, 4]
# 리스트 뒤집기 (reverse)
a = ['a', 'b', 'c']
a.reverse()
a
>>> ['c', 'b', 'a']
# 위치 반환 (index)
a = [1, 2, 3]
a.index(2)
>>> 1 # 2는 리스트 a의 두번째(a[1]) 요소
# 리스트에 요소 삽입 (insert)
a = [1, 2, 3]
a.insert(0, 4) # a[3] 위치에 4 삽입
>>> [4, 1, 2, 3]
# 리스트 요소 제거 (remove)
a = [1, 2, 3, 1, 2, 3]
a.remove(3)
>>> [1, 2, 1, 2, 3]
a.remove(3)
>>> [1, 2, 1, 2]
# 리스트 요소 끄집어내기 (pop)
a = [1, 2, 3]
a.pop() # 리스트의 맨 마지막 요소 돌려준 후 삭제
>>> 3
a
>>> [1, 2]
a.pop(1) # 리스트의 a[1]번째 요소 돌려준 후 삭제
>>> 2
a
>>> [1, 3]
# 리스트에 포함된 요소 x의 개수 세기 (count)
a = [1, 2, 3, 1]
a.count(1)
>>> 2
# 리스트 확장 (extend)
a = [1, 2, 3]
a.extend([4, 5])
a
>>> [1, 2, 3, 4, 5]
b = [6, 7]
a.extend(b)
a
>>> [1, 2, 3, 4, 5, 6, 7]
02-4 튜플 자료형
리스트는 [ ]으로 둘러싸지만 튜플은 ( )으로 둘러싼다.
리스트는 값의 생성, 삭제, 수정이 가능하지만 튜플은 값을 바꿀 수 없다.
# 튜플 자료형의 예
t1 = (1, )
t2 = (1, 2, 3)
t3 = 1, 2, 3
t4 = ('a', 'b', ('ab', 'cd'))
* 튜플은 값을 변화시킬 수 없다는 점만 제외하면 리스트와 완전히 동일.
02-5 딕셔너리 자료형
딕셔너리는 대응 관계를 나타낼 수 있는 자료형.
# 딕셔너리 자료형의 예
dic = {'name':'홍길동', 'phone':'010-1234-5678', 'birth':'0203'}
# 'name'이 Key값, '홍길동'이 Value값
a = {1:'hi'}
b = {'a':[1, 2, 3]}
# 딕셔너리 쌍 추가, 삭제
a = {1:'a'}
a[2] = 'b'
a
>>> {1:'a', 2:'b'} # 딕셔너리 쌍 추가
del a[1]
a
>>> {2:'b'} # 딕셔너리 요소 삭제
# 딕셔너리에서 Key 사용해 Value 얻기
status = {'name':'홍길동', 'age':'30'}
status['name']
>>> '홍길동'
# 주의사항
a = {1:'a', 1:'b'}
a
>>> {1:'b'} # Key 값이 중복되면 하나를 제외한 나머지 것들이 무시됨
딕셔너리 관련 함수
# Key 리스트 만들기 (keys)
a = {'name':'홍길동', 'age':30, 'birth':'0203'}
a.keys()
>>> dict_keys(['name', 'age', 'birth'])
List(a.keys()) # dict_keys 객체를 리스트로 변환할때 사용
>>> ['name', 'age', 'birth']
# Value 리스트 만들기 (values)
a.values()
>>> dict_values(['홍길동', 30, '0203']) # 리스트로 변환할때 위와 동일
# Key, Value 쌍 얻기 (items)
a.items()
>>> dict_items([('name', '홍길동'), ('age', 30), ('birth', '0203')]) # 리스트로 변환할때 위와 동일
# Key:Value 쌍 모두 지우기 (clear)
a.clear()
a
>>> {}
# Key로 Value 얻기 (get)
a = {'name':'홍길동', 'age':30, 'birth':'0203'}
a.get('name')
>>> '홍길동'
a.get('phone', '없음') # a 딕셔너리 안에 'phone' Key가 없으면 '없음' 반환
>>> '없음'
# 해당 Key가 딕셔너리 안에 있는지 조사 (in)
a = {'name':'홍길동', 'age':30, 'birth':'0203'}
'name' in a
>>> True
'phone' in a
>>> False
02-6 집합 자료형
집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형
# 집합 자료형의 예
s1 = set([1, 2, 3])
s1
>>> {1, 2, 3}
s2 = set("Hello")
s2
>>> {'e', 'H', 'l', 'o'}
* s2처럼 집합 자료형은 중복을 허용하지 않고 순서가 없다.
# set 자료형에 저장된 값을 인덱싱으로 접근 방법
s1 = set([1, 2, 3])
l1 = list(s1)
l1
>>> [1, 2, 3] # 리스트로 변환
l1[0]
>>> 1
t1 = tuple(s1)
t1
>>> (1, 2, 3) # 튜플로 변환
t1[0]
>>> 1
s1 = set([1, 2, 3, 4, 5, 6])
s1 = set([4, 5, 6, 7, 8, 9])
# 교집합
s1 & s2 # = s1.intersection(s2) = s2.intersection(s1)
>>> {4, 5, 6}
# 합집합
s1 | s2 # = s1.union(s2) = s2.union(s1)
>>> {1, 2, 3, 4, 5, 6, 7, 8, 9}
# 차집합
s1 - s2 # = s1.difference(s2)
>>> {1, 2, 3}
s2 - s1 # = s2.difference(s1)
>>> {7, 8, 9}
집합 자료형 관련 함수
# 값 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])
s1.remove(2)
s1
>>> {1, 3}'Python (파이썬)' 카테고리의 다른 글
| 06 [Do it! 점프 투 파이썬] - 작심 6일 (0) | 2022.02.05 |
|---|---|
| 05 [Do it! 점프 투 파이썬] - 작심 5일 (0) | 2022.01.29 |
| 04 [Do it! 점프 투 파이썬] - 작심 4일 (0) | 2022.01.28 |
| 03 [Do it! 점프 투 파이썬] - 작심 3일 (0) | 2022.01.27 |
| 01 [Do it! 점프 투 파이썬] - 작심 1일 (0) | 2022.01.24 |