Python 복습
리스트, 튜플, 집합, 딕셔너리
새롭게 알게된 것, 자주 헷갈리는 것 위주로 정리
문자열 관련 메소드에 의한 값 변경은 변수에 바로 반영되지 않지만, 리스트 관련 메소드에 의한 변경은 변수에 바로 반영된다. -> 필요할 경우 원본 데이터는 복사해두어야함.
list1.append(x) : 가장 뒤에 요소(x) 1개 추가
list1.insert(i, x) : 원하는 위치(i)에 요소(x) 추가
list1.extend(list2) : list1 뒤에 list2 연결
nums = [1, 2, 3, 4]를 복사할 때, nums1 = numsnums2 = nums[:] 는 다른 방법이다. nums1은 nums와 메모리에 저장된 위치가 동일하기에(id(nums)와 id(nums1)가 동일) nums1을 변경할 경우 nums가 변경되고(얕은 복사), nums2는 변경되지 않는다.(깊은 복사)
nums.copy() : 깊은 복사index(x, -1) : 리스트의 가장 마지막 x의 위치를 조회index(x, n) : 리스트의 n번째 이후 처음 등장하는 x의 위치를 반환sorted() : 파이썬의 내장함수. 반환된 값을 다시 새로운 변수에 재할당 해주어야 한다. (원본값 변경 X)list.sort() : 리스트의 메소드. 반환값이 없다. 바로 원본값을 변경한다.remove(x) : 가장 먼저 등장하는 x를 삭제. 반환값 없음(None).pop(x) : 특정 위치를 삭제하고 삭제한 값을 반환add() : 집합에 요소 1개를 추가update() : 집합에 여러 요소를 추가한다. test_set1 = {1, 2, 3}
test_set1.update([4, 5])
print(test_set1) # {1, 2, 3, 4, 5}
test_set2 = {'맑음', '흐림', '비'}
test_set2.update({'눈' : 'snow'})
print(test_set2) # {'맑음', '흐림', '비', '눈'}
# immutable인 key만 들어간다.
pop() : 무작위로 요소 1개 삭제remove(x) : 요소 x를 삭제. x가 없을 경우 에러 발생.discard(x) : 요소 x를 삭제. x가 없어도 에러가 발생하지 않음.# 리스트를 key로 사용할 경우
menu = {['이름', '가격']: ['마라탕', 8000]}
# TypeError: unhashable type: 'list'
메소드나 내장함수의 반환값 유무, 원본값 변경 여부가 은근 자주 헷갈리는 것 같다.
집합 주피터노트북 파일이 어떻게 열어도 안 열려서... 오늘 내용은 내일 TIL에 보충해야할듯... 추가 완료
jupyter nbconvert 원본파일명.ipynb --to notebook --ClearOutputPreprocessor.enabled=True --output 새파일이름