자료구조
1. 자료구조
- 자료구조: 파이썬에서 자료들을 저장하는 구조들
- 시퀀스: 파이썬의 가장 기초적인 자료구조(요소로 구성되어 있음)
- 파이썬에서의 6개의 내장 스퀀스: str, bytes, bytearray, list, tuple, range
- 시퀀스의 자료구조들은 동일한 연산을 지원함(인덱싱, 슬라이싱, 덧셈 연산, 곱셈 연산)
2. 튜플
1) 형식: tuple_name = (항목1, 항목2, ...)
2) 공백 리스트 생성: tuple_name = ( )
★ 요소가 하나뿐인 튜플을 만들 땐 요소 끝에 쉼표(,)추가해 만들기(ex. tuple = ("apple",))
3) 괄호 없이 항목들을 쉼표로 분리해도 자동으로 튜플 생성 됨(ex. tuple = "apple","banana")
4) 요소 변경 불가능!!!(기존 변경X(추가,삭제X))
※ 튜플 안의 리스트는 변경 가능
※ 튜플이 숫자를 가지고 있는 경우 '+=' 이용해 추가 가능(단일 항목X)
5) 항목 추가는 '+=' 이용(append 지원X)
※ 단일 항목 추가X
ex) t += (3,4) (O) // t += 3,4 (O) // t += 3 (X)
t += 'kiwi' (X) // t += ('kiwi','bery') (O)
2-1. 튜플 관련 함수
- enumerate(): 인덱스와 값 형태로 튜플 반환 <-> itmes(): 키와 값 반환
ex) for index, value in enumerate(lst1) >> print(index, value) >> lst1의 인덱스와 값이 같이 출력 됨
3. 세트
1) 형식: set_name = {항목1, 항목2,...}
2) 공백 리스트 생성: set_name = set()
3) 중복된 항목 없음 !
4) 문자열을 받으면 이를 분해해서 세트를 생성함
ex) set("abc") >> {"a","b","c"}
5) 세트는 항목의 순서가 없어서 인덱스로 요소에 접근 X (for문으로 접근 가능)
3-1. 세트 관련 함수
all(), any(), enumerate(), len(), sorted() 등의 메소드 사용 가능
※ 세트는 항목의 순서가 없어서 .sort() 사용 불가능 !
1) remove(): 요소 삭제할 때(오류 생성)
2) discard(): 요소 삭제할 때(오류 무시)
3) clear(): 모든 요소 삭제
ex) st.remove("value") // st.discard("value") // st.clear()
4) add(): 항목 추가
5) update(): 여러 개의 항목 추가
ex) st.add("value") // st.update(["val1","val2"])
3-2. 집합 연산
1) 부분집합: A<B // A.issubset(B) → A는 B의 하위집합
A>B // B.issuperset(A) → B는 A의 상위집합
2) 합집합: A | B // A.union(B)
3) 교집합: A & B | A.intersection(B)
3) 차집합: A - B | A.difference(B)
4. 딕셔너리
1) 형식: dic_name = { 키1 : 값1, 키2 : 값2,...}
2) 공백 딕셔너리 생성: dic_name = {}
dic_name = dict()
3) 키값(key)으로 값을 찾을 수 있음 + get() 함수 사용해 키를 찾을 수 있음(오류 방지)
ex) dic["key1"] >> key1에 있는 value1가 출력 됨(만약 해당 키가 없으면 'KeyError'발생)
dic.get("key1") >> key1에 해당하는 value를 출력하고 없을 시 None을 출력
dic.get("key1","찾을 수 없음") >> 만약 key1이 없으면 "찾을 수 없음"을 출력
4) 항목 추가: dict["key"] = "value"
5) 보통 딕셔너리 명을 쓰면 키만 내보냄 // 값을 출력하려면 딕셔너리명[키]를 사용해야 함
4-1. 딕셔너리 관련 함수
1) update(): 다른 딕셔너리 전체를 현재 딕셔너리에 추가할 시 사용
ex) dict.update({"key : value","key" : "value"})
2) pop(): 특정 항목 삭제 & 반환
ex) dict.pop("key")
※ 만약 주어진 키 항목이 없으면 KeyError 발생 ! >> 방지 위해 if "key" in dict 로 먼저 검사 진행
3) items(): 키와 값 같이 반환
ex) for key, value in dict.items() >> key엔 키, value엔 값들이 각각 들어감
4) keys(): 딕셔너리 안의 모든 키 반환
5) values(): 딕셔너리 안의 모든 값 반환
ex) dict.keys() // dict.values()
5.문자열
1) 파이썬 문자열은 변경 불가능한 객체
ex) word = "abcd" // word[0] = 'A' >> Error
※ 문자열 안의 문자 변경이 필요한 경우 슬라이싱을 이용하기
ex) word = "A" + word[1:] >> word = 'Abdc'
2) 문자열도 ==,!=,<,>로 비교 가능
5.1 문자열 내장 함수
1) chr(): 정수 → 문자
2) ord(): 문자 → 정수
※ ASCII코드 기준: a > A // a < z
3) len(): 길이 반환
4) str(): 문자열로 반환(1 → "1"
5.2 슬라이싱
문자열도 슬라이싱 가능
Monty Python
1) [6:10] >> 인덱스 6~9까지 출력
2) [:num] >> 양수(1): num-1까지 출력 // 음수(-1): num까지 제외해서 출력(ex. [:-2] >> Month Pyth)
3) [num:] >> 양수(1): num부터 출력 // 음수(-1): num까지만 선택해 출력(ex. [-2:] >> on)
4) [:] >> 전체 출력
5) [::-1] >> 거꾸로 출력
5.3 문자열 메소드
1) capitalize(): 첫 문자만 대문자로 변환
2) lower(): 모든 문자 소문자로 변환된 사본 반환
3) upper(): 모든 문자 대문자로 변환된 사본 반환
ex) s.capitalize() / s.lower() / s.upper()
4) startswith('a'): 'a'로 시작되는 문자열이면 True 반환
5) endswith('a'): 'a'로 끝나는 문자열이면 True 반환
ex) s.starswith('a') / s.endswith('a')
6) replace(): 한 문자열을 다른 문자열로 변환
ex) s.replace('com', 'co.kr') >> s의 문자열에서 'com'을 'co.kr'로 변환
7) find(): 대상 문자열에서 지정 문자열을 찾아 인덱스 반환 <->index()
ex) s.find('.') >> s 문자열에서 '.'의 인덱스를 반환
s.find('.',start,stop) >> 시작 위치와 종료 위치를 지정해서 찾을 수 있음
8) rfind(): 오른쪽에서부터 지정 문자열 찾아 인덱스 반환
ex) s.rfind('.') >> s 문자열에서 '.'의 인덱스를 반환
9) count(): 문자열 중 지정 문자열의 등장하는 횟수 반환
ex) s.count('.') >> s 문자열에서 '.'의 횟수를 반환
s.count ('.',start,stop) >> 시작 위치와 종료 위치를 지정해서 찾을 수 있음
10) isalpha(): 모든 문자가 알파벳이면 True
11) isdigit(): 모든 문자가 숫자면 True
12) islower(): 모든 알파벳 문자가 소문자면 True
13) isupper(): 모든 알파벳 문자가 대문자면 True
ex) s.isalpha(), s.islower() ...
12) strip(): 문자열의 첫 부분과 끝부분에서 공백 혹은 지정문자 제거(문자 사이X)
ex) s.strip(' ') >> 공백 제거 // s.strip("@") >> '@'제거
13) split(): 공백이나 지정문자를 기준으로 문자 분해
ex) s = 'Hello World" / s.split(' ') >> ['Hello','World']
14) join(): 문자를 모아 문자열로 만듦
ex) '-'.join(['010','1234','5678']) >> 010-1234-5678
15) sample(): 주어진 개수만큼의 글자를 문자열에서 임의로 선택함
ex) random.sample(s, 4) >> s문자열에서 4개를 임의로 선택

'파이썬' 카테고리의 다른 글
| 파이썬 객체와 클래스 (0) | 2024.05.21 |
|---|---|
| 파이썬 리스트(List) (0) | 2024.05.19 |