python 사용 정리

weenybeenymini·2021년 9월 12일
0
############### 계산 ###################
a, b = divmod(5, 3)
print(a, b)

# swap 그냥 아래처럼 하면 됌
a, b = b, a

# 삼항 연산자 x 조건부 표현식 o
result = a if a > 10 else b

################## 문자열 처리 ###################
s = "Python string summary"
# immutable한 자료형 변경 불가

# C++ 에선 substr(6, 5)
s[6:11]

len(s)
s.count('리')
s.find('자') # 있으면 index, 없으면 -1 반환

s.isalnum() # 숫자 알파벳으로만 이루어지면 True, 아니면 False
s.isdigit() # 숫자로만 이루어지면 ''
s.isalpha() # 알파벳으로만 이루어지면 ''

s.lower() # 모두 소문자로 변환
s.upper() # 모두 대문자로 변환

s.split() # ~를 기준으로 잘라서 리스트로 반환
s.replace('Python', 'R') # 앞 문자열을 뒷 문자열로 교체

################### 파이썬 자료구조 ###################
# 리스트 [,] append pop
# C++ 배열 {,} 벡터 push_back pop_back
l = ['s', 'li', 't']

copyL1 = l # 레퍼런스 복사가 되서 l바꾸면 copyL도 바뀜
copyL2 = l[:] #로 전체 값 복사 혹은

import copy
copyL3 = copy.copy(l) #해주자

' '.join(l) # 리스트를 해당 문자열을 사이에 넣어서 붙여 문자열로 반환

# 둘이 같음
l.sort()
l = sorted(l)

# 리스트에 다양한 자료형 넣을 수 있어서
# 기존 pair<int, pair<string, int>> 이렇게 쓰던거 아래와 같이 쓰자!
[1, '2', 3]

# 튜플 (,) const list 느낌 수정 삭제 불가능
(1,2,3)

# 딕셔너리 {,} key-value쌍 변경 불가 멀티맵x 맵o (키 값이 중복되면 덮어씀)
{'키':'값'}

# 셋 {,} 중복 값 불가
set([1,1,2,2])

############### 파이썬 큐 사용법 ##############
from collections import deque #double ended queue의 약자
# list 보다 push/pop 연산에서 좋아 O(1)

q = deque()
q.append(1)
q.append(2)
q.popleft() # 1
q.popleft() # 2

# .appendleft() .pop() 도 있음
# while q: 이렇게 하면 큐가 빌 때 까지 돌 수 있음

# 우선 순위 큐 (내부적으로 heap 모듈 사용 put(), get() O(log n)임)
from queue import PriorityQueue

pq = PriorityQueue()
pq.put((4, '먼저 들어왔어'))
pq.put((3, '나중에 들어왔어'))
pq.get()
pq.get()

################## 이외에 쓸만한 거 ##################

# 조합 구하기
from itertools import combinations
num = [2,1,6,4,5,3]
print(list(combinations(sorted(num), 2))) #구해야 할 조합 리스트, 개수

0개의 댓글