728x90
반응형
Do it! 점프 투 파이썬
정리 다운로드 :
단서 질문
숫자열 자료형?문자열 자료형?[점프투파이썬 정리/다운로드] 02장. 자료형(숫자형/문자열)- 리스트 자료형?
- 튜플 자료형?
- 딕셔너리 자료형?
- 집합 자료형?
- 불 자료형?변
- 변수?
핵심 필기
02장. 파이썬 프로그래밍의 기초, 자료형
단서 질문
- 숫자열 자료형?
- 문자열 자료형?
- 리스트 자료형?
- 튜플 자료형?
- 딕셔너리 자료형?
- 집합 자료형?
- 불 자료형?변
- 변수?
핵심 필기
- 💡 CRUD
Create/Read/Update/Delete - 생성/조회/수정/삭제) : 자료형을 배울 때 기본적인 구조
02-3. 리스트 자료형
- 요소에는 어떠한 자료형도 가능하다. 리스트도 가능하다.
(1) Create
- 리스트명 = [요소1, 요소2, …]
(2) Read
- 리스트 요소 수정
- a=[1,2,3]
- a[2]=4
- a=[1,2,4]
(4) Delete
- 리스트 요소 삭제
- del 리스트명[인덱스]
- 슬라이스로도 가능하다.
- a=[1,2,3,4,5]
- del a[2:]
- a=[1,2]
- 슬라이스로도 가능하다.
- 리스트명.remove(요소)
- 첫번째로 나오는 요소만 삭제
- 리스트명.pop()
- 마지막 요소 자체를 반환하고 삭제
- 리스트명.pop(인덱스)
- 해당 인덱스의 요소를 반환하고 삭제
- del 리스트명[인덱스]
(5) 다루기
- 인덱싱 / 슬라이싱
- 첫번째 요소의 자릿수는 0이다.
- 인덱싱
- 단일리스트 인덱싱 : a=[1,2,3]
- a[0] → 1
- a[0] + a[2] → 1+3=4
- a[-1] → 3
- 중첩리스트 인덱싱 : 뒤에 인덱싱을 연속해서 붙여준다.
- 이중리스트 인덱싱 : a=[1,2,3,[’a’,’b’]
- a[3]=a[-1]=[’a’,’b’]
- a[3]에서도 첫번째를 끌어오기 : a[3][0]=’a’
- 삼중리스트 인덱싱 : a=[1,2,3,[’a’,’b’,[’life’,’is’]]]
- a[3][2][0]=’life’
- 이중리스트 인덱싱 : a=[1,2,3,[’a’,’b’]
- 단일리스트 인덱싱 : a=[1,2,3]
- 슬라이싱
- 단일리스트 슬라이싱 : a=[1,2,3,4,5]
- a[0:2]=[1,2]
- a[:3]=[1,2,3] #처음부터 a[2]까지
- a[3:]=[4,5] #a[3]부터 끝까지
- 중첩리스트 슬라이싱 : a=[1,2,3,[’a’,’b’,’c’],4,5]
- a[2:5]=[3,[’a’,’b’,’c’],4,5]
- a[3][:2]=[’a’,’b’]
- 단일리스트 슬라이싱 : a=[1,2,3,4,5]
2. 연산하기
-
-
- + : 리스트 2개를 순서대로 합쳐준다.
- * : 리스트를 반복한다.
-
3. 리스트 관련 함수
-
- len(list) : 리스트의 요소 개수를 반환한다.
- list.sort() : 리스트를 정렬한다.
- list.reverse() : 리스트를 역순으로 뒤집는다.
- list.index(요소) : 리스트에서 요소 x가 처음으로 나온 위치를 반환한다.
- list.insert(인덱스, 요소) : 해당 인덱스 위치에 요소를 추가한다.
- list.append(요소) : 맨 마지막에 요소를 추가한다.
- list.remove(요소) : 리스트에서 첫 번째로 나오는 x를 삭제한다.
- list.pop(인덱스) : 해당 인덱스 위치의 요소를 삭제하고 반환한다.
- list.count(요소) : 리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 반환한다.
- list.extend(리스트) : 리스트 뒤에 다른 리스트를 추가한다.
- 2차원 리스트
- a=[[1,2],[3,4],[5,6]]
- a[0][0] : 1
- a[0][1] : 2
- a[2][1] : 6
- 리스트의 할당과 복사
- 리스트를 복사하고자 할 때, a=b와 같은 식으로 대입하면 a,b는 같은 리스트를 가리키게 된다. 이 경우, a와 b는 완전히 동일한 리스트이기 때문에 한 쪽에서 값을 변경하면 다른 쪽에서도 동일하게 변경된다.
- 이를 방지하기 위해서는 copy() 함수를 사용하여야 한다.
- from copy import copy #copy 모듈에서 함수를 꺼내 온다.
- a=[1,2,3]
- b=a.copy()
- a[0]=0
- print(a) → [0,2,3]
- print(b) → [1,2,3]
- 리스트 전체를 가리키는 [:]으로 복사해도 된다.
- a=[1,2,3]
- b=a[:]
- 이를 방지하기 위해서는 copy() 함수를 사용하여야 한다.
- 리스트를 복사하고자 할 때, a=b와 같은 식으로 대입하면 a,b는 같은 리스트를 가리키게 된다. 이 경우, a와 b는 완전히 동일한 리스트이기 때문에 한 쪽에서 값을 변경하면 다른 쪽에서도 동일하게 변경된다.
- 02-4. 튜플 자료형
- 리스트는 []로 둘러싸고 튜플은 ()으로 둘러싸거나 아무것도 안 써도 된다.
- ()으로 둘러쌀 때 안에 요소가 1개만 있으면 뒤에 콤마를 반드시 붙인다.
- 리스트는 수정, 삭제가 가능하지만 튜플은 불가능하다.
- 값이 항상 같아야 할 때는 튜플이 유리하다.
- 튜플명 = ()
- 튜플명 = (요소1,)
- 튜플명 = (요소1,요소2)
- 튜플명 = 요소1, 요소2
- 인덱싱 / 슬라이싱
- 인덱싱
- t1=(1,2,’a’,’b’)
- t1[0] → 1
- 슬라이싱
- t1[1:] → (2,’a’,’b’)
2. 연산하기
-
-
- : 튜플을 순서대로 합쳐 준다.
- : X
- : 튜플을 반복한다.
- / : X
-
3. 튜플 관련 함수
-
- 튜플은 수정이 불가능하기 때문에, 요소를 추가하는 함수, 삭제하는 함수는 없다.
- 다른 함수는 리스트와 동일하다.
len(tuple) 튜플의 길이를 반환한다. tuple.index(요소) 튜플에서 요소가 처음으로 나온 위치를 반환한다. tuple.count(요소) 튜플 안에 요소가 몇 개 있는지 조사하여 그 개수를 반환한다.
02-5. 딕셔너리 자료형
- 대응 관계를 갖는 자료형 (연관 배열, 해시)
- 순서가 없다. 즉, 인덱싱을 지원하지 않는다.
(1) Create
- 딕셔너리명 = {key1:value1, key2:value2, key3:value3, …}
- key : 변하지 않는 값
- 만약 중복의 key가 입력되면 마지막 key만 저장되고 다른 것들은 무시된다.
- key에 리스트는 넣을 수 없다. (변할 수 있으므로)
- key에 튜플은 넣을 수 있다. (변하지 않으므로)
- key에 딕셔너리는 넣을 수 없다.
- value : 아무 값
- value에 리스트, 튜플, 아무 자료형이나 넣을 수 있다.
- key : 변하지 않는 값
(2) Read
- 딕셔너리[key] → value
- dict.get[key] → value
- 존재하지 않는 키(nokey)일 경우
- 딕셔너리[nokey] → 오류
- dict.get[nokey] → None (’거짓’이라는 의미임)
- 찾으려는 key가 없을 경우 정해 둔 디폴트를 가져오게 할 때
- dict.get(key,’디폴트 값’)
(3) Update
- 추가하기
- a = {1:’a’}
- a[2]=’b’
- a >>> {1:’a’, 2:’b’}
- a[3]=[1,2,3]
- a >>> {1:’a’, 2:’b’, 3:[1,2,3]}
(4) Delete
- del 딕셔너리[key]
- 딕셔너리에서는 요소값으로 인덱싱을 할 수 없다. key로만 value를 적용할 수 있다.
(5) 다루기
- 딕셔너리 관련 함수
- len(dict) : 딕셔너리의 key-value 쌍의 개수를 반환한다.
- dict.keys() : 딕셔너리의 key 값을 리스트 형태의 객체로 반환한다.
- → dict_keys[key1,key2,…]
- 이 객체는 리스트 고유의 함수는 이용할 수 없다.
- 객체를 리스트로 변환하려면, list(dict.keys())
- → dict_keys[key1,key2,…]
- dict.values() : 딕셔너리의 value 값을 리스트 형태의 객체로 반환한다.
- → dict_keys[value1,value2,…]
- 객체를 리스트로 변환하려면, list(dict.values())
- → dict_keys[value1,value2,…]
- dict.items() : 딕셔너리의 key-value 쌍을 튜플 형태의 객체로 반환한다.
- → dict_items([(key,value])
- 객체를 리스트로 변환하려면, list(dict.items())
- → dict_items([(key,value])
- dict.clear() : 딕셔너리의 key-value 쌍을 지운다. 모든 요소를 삭제한다.
- → {}
- ‘key’ in dict : 해당 key가 딕셔너리에 있는지 조사한다. 결과는 True, False로 반환된다.
02-6. 집합 자료형
- 중복을 허용하지 않는다.
- 순서가 없다. 즉, 인덱싱을 지원하지 않는다.
- 자료형의 중복을 제거하기 위한 필터 역할로도 종종 사용한다.
(1) Create
- 집합명 = set() #빈 집합형
- 집합명 = set([리스트])
- 집합명 = set(문자열)
(2) Update
- set.update(집합) : 해당 집합에 다른 집합을 더한다.
(3) Delete
- set.remove(요소) : 해당 집합에서 요소를 삭제한다.
- set.clear() : 해당 집합을 모두 지운다.
(4) 다루기
- 인덱싱
- 인덱싱이 필요하다면 리스트나 튜플로 변환해야 한다.
- 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
2. 교집합, 합집합, 차집합 구하기
- 교집합 : &
- s1 & s2
- s1.intersection(s2)
- 합집합 : |
- s1 | s2
- s1.union(s2)
- 차집합 : -
- s1 - s2
- s1.difference(s20
3. 집합 관련 함수
- len(set) : 집합의 길이를 반환한다.
- set.add(요소) : 해당 집합에 요소를 추가한다.
- set.update(집합) : 해당 집합에 다른 집합을 더한다.
- set.remove(요소) : 해당 집합에서 요소를 삭제한다.
- set.clear() : 해당 집합을 모두 지운다.
- ‘요소’ in 집합 : 해당 요소가 집합에 있는지 조사한다. 결과는 True, False로 반환된다.
02-7. 불 자료형
- 참/거짓
- 자료형의 참/거짓 구분하기
- 값이 없는 경우 : False
- 숫자의 경우 : 0이면 False, 아니면 True
- 리스트, 튜플, 딕셔너리의 경우 : 길이가 0이면 False, 그렇지 않으면 True
- 비어있는 문자열인 경우 : False, 그렇지 않으면 True
- None : False
- 불 자료형 관련 함수
bool(값) : 불 자료형으로 변환한다.함수 설명
all(리스트) | 리스트의 모든 요소가 True이면 True를 반환한다. |
any(리스트) | 리스트의 요소 중 하나라도 True이면 True를 반환한다. |
- 불 연산
연산자 설명
x or y | x와 y 둘 중에 하나만 True이면 True이다. |
x and y | x와 y 모두 True이어야 True이다. |
not x | x가 False이면 True이고, True이면 False이다. |
02-8. 자료형의 값을 저장하는 공간, 변수
- 변수 이름 = 변수에 저장할 값
- 이 때 = 은 assignment 기호라고 한다.
- 변수와 메모리
- 변수는 객체를 가리킨다.
- 변수를 만들 때마다 메모리 공간이 생성된다.
- 변수는 메모리의 주소를 가리킨다.
- 객체의 주소를 돌려주는 내장 함수 : id(객체)
- 객체의 크기는 불변이다.
- 똑같은 객체를 가리키는 변수가 여러 개일 수 있다.
- 변수는 객체를 가리킨다.
- 변수 만들기
- 튜플
- a,b=(’python’,’life’)
- 리스트
- [a,b]=[’python’,’life’]
- a=b=’python’
- 튜플
핵심 요약
- 핵심 요약 접기
- 자료형에는 숫자형/문자열/리스트/튜플/딕셔너리/집합/불 이 있다.
- 프로그램 자체에 내장된 이스케이프 코드, 문자열 포맷 코드, 문자열 관련 내장 함수가 있다.
728x90
반응형
'PROGRAMMING > Python&자료구조' 카테고리의 다른 글
[점프투파이썬 정리/다운로드] 02장. 자료형(숫자형/문자열) (0) | 2023.05.31 |
---|---|
[점프투파이썬 정리/다운로드] 01장. 파이썬이란 무엇인가? (0) | 2023.05.30 |
Python code 예시 (0) | 2021.10.15 |
댓글