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}

+ Recent posts