1. 리스트(List) 자료형: 순서 有, 혼합자료형 저장, 변경가능
(1) 형식: [요소1, 요소2, …]
(2) 요소: 숫자, 문자, 리스트
(3) 빈 리스트 = [ ] = list()
(4) 인덱싱과 슬라이싱
1) 문자열과 동일하게 작업
2) 리스트 요소로 리스트를 가질 때 ex)
① 인덱싱
a = [1, 2, [‘a’, ‘b’, [‘life’, ‘is’]]]
a[2][2][0] = ‘life’
② 슬라이싱
a = [1, 2, 3, [‘a’, ‘b’, ‘c’], 4, 5]
a[2:5] = [3, [‘a’, ‘b’, ‘c’], 4]
a[3][ :2] = [‘a’, ‘b’]
(5) 연산
1) 문자열과 같다
2) 리스트1 + 리스트2 = [리스트1의 요소, 리스트2의 요소]
ex) [1, 2, 3] + [4, 5, 6] = [1, 2, 3, 4, 5, 6]
3) 리스트 * 숫자 = [리스트요소, 리스트요소…] 숫자만큼 반복
ex) a = [1, 2, 3]일 때 a* 3 = [1, 2, 3, 1, 2, 3, 1, 2, 3]
(6) 리스트 길이: len(리스트)
(7) 수정과 삭제: index번호를 이용하여 수정 삭제 ex) a = [1, 2, 3]
1) 수정: a[1] = 4
a = [1,4,3]
2) 삭제: del a[1: ]
a = [1]
※ del은 모든 자료형에서 사용 가능
※ 리스트 삭제는 추가로 remove함수와 pop함수를 사용할 수도 있다.
(8) 함수
1) 요소 추가: 리스트.append(추가할 요소)
2) 정렬: 리스트.sort() -> 순서대로 정렬
3) 뒤집기: 리스트.reverse()
ex) a = [‘a’, ‘c’, ‘b’]일 때 a.reverse() = [‘b’, ‘c’, ‘a’]
4) 위치 반환: 리스트.index(찾고자 하는 요소)
ex) a = [‘a’, ‘c’, ‘b’]일 때 a.index(‘c’) = 1
5) 요소 삽입: 리스트.insert(삽입할 위치 index, 삽입할 요소)
ex) a = [1, 2, 3]일 때 a.insert(0, 4) => a = [4, 1, 2, 3]
6) 요소 제거: 리스트.remove(삭제할 요소) => 리스트에서 처음으로 나오는 요소 1개만을 삭제
ex) a = [1, 2, 3, 4, 5, 3]일 때, a.remove(3) => a = [1, 2, 4, 5, 3]
7) 요소 꺼내기: 리스트.pop(꺼낼 index)
① 꺼낼 index를 입력하지 않으면 리스트의 맨 마지막요소를 꺼냄
② 꺼낸다는 것은 삭제한다는 뜻과 같음
③ 요소를 삭제하고 남은 요소들을 리스트로 반환
ex) a = [1, 2, 3]일 때, a.pop() = 3 => a = [1, 2], a.pop(1) = 2 => a = [1, 3]
8) 요소 개수: 리스트.count(‘개수 셀 요소’)
ex) a = [1, 2, 3, 1, 1]일 때, a.count(1) = 3
9) 리스트 확장: 리스트1.extend(리스트2) = [리스트1의 요소들, 리스트2의 요소들] = 리스트1 + 리스트2
2. 튜플(Tuple) 자료형: 순서 有, 변경불가
(1) 형식: (요소1, 요소2,…) 또는 괄호 없이 요소1, 요소2, ….
(2) 빈 튜플 ()
(3) 요소 1개인 튜플 형식: (요소1, )
1) 반드시 마지막에 콤마 붙여야 함.
2) (요소1) = 정수형이나 문자열로 취급됨.
(4) 연산
1) 튜플 더하기
2) 튜플 곱하기
(5) 튜플 길이: len(튜플)
(6) 인덱싱, 슬라이싱 가능
(7) 요소 개수 count 함수 사용 가능
(8) 튜플을 수정하고 싶으면 리스트로 변환 후 변경 가능
ex) imsi = list(tuple)
3. 딕셔너리(Dictionary) 자료형: 순서 無
(1) 대응 관계를 나타내는 자료형
(2) 연관배열, 해시(Hash)
(3) key - value형식
(4) 형식: {key1:value1, key2:value2,…} / dict(key1=value1, key2=value2,…)
(5) 쌍 추가, 삭제 ex) a = {1:’a’, 2:’b’}
1) 추가: a[‘name’] = ‘pey’ => a = {1:’a’, 2:’b’, ‘name’:’pey’}
a[3] = [1, 2, 3] => a = {1:’a’, 2:’b’, ‘name’:’pey’, 3: [1, 2, 3]}
2) 삭제: del a[1] => a = {2:’b’} : key가 1인 key와 value가 모두 삭제됨
(6) 변수에 딕셔너리를 대입해서 변수명[key] = key의 value 를 찾을 수 있다.
☞ get함수를 이용해서도 value값 얻을 수 있다.
(7) key의 조건
1) 중복금지
2) 변경금지 => 리스트는 안되고 튜플은 key로 사용 가능한 이유
(8) 함수
1) key 추출: 딕셔너리 변수명.keys() => dict_keys([key들])
2) value 추출: 딕셔너리 변수명.values() => dict_values([value들])
3) key – value쌍 얻기: 딕셔너리 변수명.items() => dict_items([(key1, value1), (key2,value2),…])
4) key:value쌍 모두 지우기: 딕셔너리 변수명.clear()
5) key로 value 얻기: 딕셔너리 변수명.get(key, [디폴트 값])
① 찾고자 하는 key가 값을 때 정해 둔 디폴트 값으로 반환가능
② key값이 없을 때 변수명[key]는 오류를 발생시키고 get(key)는 None을 반환한다.
6) 해당 key가 딕셔너리 안에 있는지 확인: key in 딕셔너리 변수명 => true/false로 반환
4. 집합(set) 자료형: 중복불가, 순서 無, 변경불가, 추가가능
(1) 형식: {요소1, 요소2,…} / set(요소들)
ex) set(“Hello”) = {‘e’, ‘H’, ‘l’, ‘o’}
(2) 교집합, 합집합, 차집합
1) 교집합
① 집합1 & 집합2
② 집합1.intersection(집합2)
2) 합집합
① 집합1 | 집합2
② 집합1.union(집합2)
3) 차집합: 앞에 집합에 뒤에 집합과 공통되는 요소 빼고 남은 집합
① 집합1 – 집합2
② 집합1.difference(집합2)
(3) 함수
1) 값 1개 추가: 집합 변수명.add(추가할 값)
2) 값 복수 개 추가: 집합 변수명.update(추가할 값들의 리스트|튜플|집합형)
3) 값 제거
① remove(제거할 값)
② discard(제거할 값)
③ 둘의 차이는 제거할 값이 없을 때 remove는 오류를 발생시키고, discard는 그냥 지나감
4) 전체 제거: clear()
5. 불린(Boolean) 자료형
(1) 거짓: bool(False),bool(0),bool(''), bool(0.0),bool(None),bool([]),bool({}),bool(set())
(2) 참: bool(True), bool(1), bool(-12), bool(1.5), bool('kbs')
6. 변수
(1) 형식: 변수 이름 = 변수에 저장할 값
(2) 변수에 저장할 값이 heap에 생성되고 변수명이 stack에 생성되면 heap에 생성된 리스트의 주소를 변수가 참조하는 구조
(3) 변수는 객체의 주소를 저장
(4) 주소확인 방법
1) 함수 id(변수명|객체) = 주소반환
2) 변수명1 is 변수명2 = true/false반환, 주소가 같은지 확인
(5) 자료형 복사방법
1) 같은 값 같은 주소: = 을 사용
2) 같은 값 다른 주소
① 변수명2 = 변수명1[ : ] : 변수명1을 변수명2에 복사
② 변수명2 = copy(변수명1): 변수명1을 변수명2에 복사
5. 함수 (0) | 2021.04.25 |
---|---|
4. 제어문 - if, while, for (0) | 2021.04.25 |
3. 파이썬 자료형 - (2) 문자열 (0) | 2021.03.04 |
3. 파이썬 자료형 - (1) 숫자형 (0) | 2021.03.04 |
2. 파이썬 개요 (0) | 2021.03.04 |