슬라이싱
슬라이싱이란, 어디부터 : 어디까지를 추출해주는 것이다.
정확히 말하면 어디부터 : 어디 직전까지 이다.
a = [1, 2, 3, 4, 5]
print(a[1:3]) #[2, 3]
print(a[:3]) #[1, 2, 3]
문자열 처리
# [문자열 더하기]
snack = '꼬깔콘'
num = '2개'
plz = snack + num
# 꼬깔콘 2개
plz += '주세요'
# 꼬깔콘 2개 주세요.
# [여러줄 문자 만들기]
snack = ''' 꼬깔콘은
너무
맛있는 과자'''
# 꼬깔콘은
# 너무
# 맛있는 과자
문자열 메소드
zfill() | 숫자의 길이를 맞추기위해 앞쪽에 0을 채움 |
replace(바꿀값,새로운값) | 문자열을 찾아서 새로운문자열로 바꿈 |
strip('삭제할문자들') | 양쪽에 지정한 문자를 삭제하거나 공백을 삭제 |
rstrip() | 오른쪽 공백 삭제 |
lstrip() | 왼쪽 공백 삭제 |
index('찾을문자열') | 문자열을 찾아 인덱스를 알려줌 |
fine('찾을문자열') | index와 같음 |
upper() | 대문자로 바꾸기 |
lower() | 소문자로 바꾸기 |
capitalize() | 첫글자만 대문자로 바꾸기 |
count('문자열') | 지정한문자열이 몇번 나왔는지 확인 |
split('기준문자열') | 공백을 기준으로 나눠 리스트로 저장해줌 |
center('길이') | 지정한 길이로 만들어 가운데정렬 |
ljust('길이') | 지정한 길이로 만들어 왼쪽정렬 |
rjust('길이') | 지정한 길이로 만들어 오른쪽정렬 |
문자열 포멧
#[문자열 출력]
python = '파이썬'
java = '자바'
print(python + '' + java) # 파이썬 자바
print(python, java) # 파이썬 자바
이렇게 문자열 끼리 더해서 출력하게 될 경우 2개 이하면 간단하게 되지만 그 이상은 복잡해진다. 그 때 사용하는 게 문자열 포멧이다.
#[문자열 포멧]
python = '파이썬'
java = '자바'
#방법 - 1
print('개발 언어에는 {}, {}등이 있습니다.'.format(python, java))
# 개발 언어에는 파이썬, 자바등이 있습니다.
# 방법 - 2
print('개발 언어에는 {0}, {1}등이 있습니다.'.format(python, java)) # 개발 언어에는 파이썬, 자바등이 있습니다.
print('개발 언어에는 {1}, {0}등이 있습니다.'.format(python, java)) # 개발 언어에는 자바, 파이썬등이 있습니다.
# 방법 - 3: f-string
print(f'개발 언어에는 {python}, {java}등이 있습니다.'.format(python, java)) # 개발 언어에는 파이썬, 자바등이 있습니다.
탈출 문자
: 탈출 문자란 \(back slash)와 바로 뒤에 같이 나오는 특정 문자등을 합쳐 하나의 탈줄문자라고 하고 출력시 특별한 의미를 나타낸다.
리스트
: 수정 가능 / 순서 보장/ 중복 허용인 순서열 타입 (여러 데이터를 하나의 변수에 저장하고 관리할 수 있는 자료구조를 제공)
리스트 = [값1, 값2, ...]
my_list = ['iOS', 'CV', 'Spring']
리스트는 중복을 허용한다!
리스트는 순서가 보장된다! -> 즉, 인덱스 활용 가능/ 슬라이싱 가능
리스트는 수정이 가능하다!
my_list = ['iOS', 'CV', 'Spring']
#인덱싱
print(my_list[1]) # CV
#슬라이싱
print(my_list[:2]) # ['iOS', 'CV']
리스트관련 함수
my_list = ['iOS', 'CV', 'Spring']
# 길이
print(len(my_list)) # 3
# 데이터 추가
my_list.append('H2')
print(my_list) # ['iOS', 'CV', 'Spring', 'H2']
# 데이터 삭제
my_list.remove('Spring')
print(my_list) # ['iOS', 'CV']
# 리스트 확장
your_list = ['AOS', 'DL', 'ML']
my_list.extend(your_list)
print(my_list) # ['iOS', 'CV', 'Spring', 'AOS', 'DL', 'ML']
튜플
: 수정 불가능 / 순서 보장/ 중복 허용인 순서열 타입 (여러 데이터를 하나의 변수에 저장하고 관리할 수 있는 자료구조를 제공)
: 즉, 쉽게 말하면 읽기 전용 리스트이다.
튜플 = (값1, 값2 ... )
나머지 사용법은 리스트와 같다.
[패킹과 언패킹]
my_tuple = (1, 2, 3) # 패킹
(one, two, three) = my_tuple # 언패킹
# 위의 과정은 아래와 같다
# one = 1
# two = 2
# three = 3
만약에 튜플의 요소의 개수보다 변수의 수가 작다면?
my_tuple = (1, 2, 3, 4, 5, 6, 7, 8) # 패킹
(one, two, three, *others) = my_tuple # 언패킹
print(others) # [4, 5, 6, 7, 8]
print(others[0]) # 4
이렇게 other에 담으면 other에는 나머지 요소들이 리스트 형식으로 담긴다.
세트
: 수정 가능 / 순서 보장 x / 중복 허용 x인 컬렉션 타입 (여러 데이터를 하나의 변수에 저장하고 관리할 수 있는 자료구조를 제공)
: 집합을 활용 가능한 컬련션 타입
A = {'돈까스', '보쌈', '제육'}
B = {'짬뽕', '제육', '초밥'}
# 교집합 (공통 부분만)
print(A.intersection(B))
# 결과: {'제육'}
# 합집합 (모든 요소)
print(A.union(B))
# 결과: {'보쌈', '제육', '짬뽕', '초밥', '돈까스'}
# 차집합 (모든 요소 - (공통 부분 + B)
print(A.difference(B))
# 결과: {'보쌈', '돈까스'}
순서가 보장되지 않기 때문에 인덱스를 통한 접근은 불가능하다.
다만 수정은 가능하다!
my_set = {'돈까스', '보쌈', '제육'}
my_set.add('쌀국수')
print(my_set)
# {'돈까스', '보쌈', '제육', '쌀국수'}
my_set.remove('제육')
print(my_set)
# {'돈까스', '보쌈', '쌀국수'}
딕셔러니
: key : value가 쌍을 이루는 컬렉션 / 다만, key는 중복이 허용되지 않음.
딕셔너리 = {key1:value1, key2:value2, ... }
# 기본 사용법
person = {'이름':'홍길동', '나이':21, '키':180, '몸무게': 78}
print(person['이름']) # 홍길동
print(person['키']) # 180
print(person['별명']) # error!!!
print(person.get('별명')) # None -> 없어도 에러가 발생되지 않고 None이 출력
# 새로운 데이터 추가
peson['최종학력'] = '문과'
# 한 개의 특정 키의 데이터 변경
person['키'] = 190
# 두개 이상의 키의 데이터 변경
person.update({'키': 175, '몸무게': 70})
# 모든 데이터 삭제
person.clear()
# 특정 데이터 삭제
person.pop('몸무게')
# 모든 키 확인
person.keys()
# 모든 값 확인
person.values()
자료형 비교
자료형 변환
튜플은 수정이 불가능하지만 수정이 가능하게 만들 수 있다. 튜플을 리스트로 변경해서 리스트의 append로 요소를 추가하고 다시 튜플로 변경하면된다.
my_tuple = (1, 2, 3)
print(f"my_tuple 변경 전 {my_tuple}")
my_list = list(my_tuple)
my_list.append(4)
my_tuple = tuple(my_list)
print(f"my_tuple 변경 후 {my_tuple}")
# my_tuple 변경 전 (1, 2, 3)
# my_tuple 변경 후 (1, 2, 3, 4)
만약 리스트의 중복을 없애고 싶다면? 세트로 변경 후 다시 리스트로 변경하면 중복 값이 제거된다.
my_list = [1, 2, 3, 3, 3]
print(f"my_list 변경 전 {my_list}")
my_set = set(my_list)
my_list = list(my_set)
print(f"my_list 변경 전 {my_list}")
# my_list 변경 전 [1, 2, 3, 3, 3]
# my_list 변경 전 [1, 2, 3]
'문법관련 > python' 카테고리의 다른 글
파이썬 고급 문법(class~모듈과 패키지) (1) | 2024.09.13 |
---|---|
파이썬 중급 문법 (함수~with) (0) | 2024.09.13 |
파이썬 초급 문법2 (if~리스트 컴프리핸션) (0) | 2024.09.13 |
파이썬 기초 문법 (자료형 ~ 불리안) (0) | 2024.09.13 |