a = [1,2,3,4,5]
a = list()
a = []
a = [0] * 10
array = [i for i in range(1,10) if i % 2 == 1]
array = [i*i for i in range(1,10)
a/b # 그냥 나눈 값
a//b # 몫
a%b # 나머지
a ** b # 거듭연산자
a=[1,2,3,4,5]
b=a[1:4] # 2 3 4
# 마지막 원소 전까지
n=3
m=4
array = [[0] * m for _ in range(n)]
# [0] * m 배열의 방을 n 만큼 만들어라
# N * M
# 순서 반대인 것에 유의
n = 3
m = 4
array = [[0]*m] * n
array[1][1]=5
print(array)
a = [1,2,3,3,3,4,5]
a.sort()
a.sort(reverse=True)
a.reverse()
a.insert(2,300)
# 2번째에 300 숫자 추가
a.add(6)
# 하나만 가능
a.update([10,11,12])
# 여러개 가능
a.count(3)
# 3숫자 몇개있는지 세기
a.remove(3)
# 하나만 사라짐
insert() / remove()
등은 시간복잡도가 O(n)
a=[1,2,3,4,3,3,3,5,5,5,5,5]
delete_list = [3,5]
result = [i for i in a if i not in delete_list]
a = "\"python\""
print(a)
# "python"
a = "hi"
print(a*5)
# hihihihihi
a = "abcde"
print(a[2:4])
# cd
튜플은 한번 선언된 값을 변경할 수 없다
리스트는 [] // 튜플은 ()
key - value ( map )
data = dict() # {} 와 같음
data['1'] = 2
data['얼수'] = '안녕'
print(data)
dictionary() - python에서의 map은 다른 용도임
일반 map = dict()
data = dict()
data['a']=1
data['b']=2
data['c']=3
key_set = data.keys()
value_set = data.values()
print(key_set)
print(value_set)
for i in key_set:
print(i)
data = {1,2,1,1,1,1,1,12}
print(data)
data = set([1,2,3,4,1,1,1,1])
print(data)
a = { 1,2,3,4,5}
b= {3,4,5,6,7}
print(a|b)
print(a&b)
print(a-b)
x=13
if x>15:
print("hi")
elif x==15:
print("bye")
else:
print("aa")
스페이스바 4번이 표준 ( tab 도 상관없음 )
스페이스바로 하는 게 권장
print(10==10 or 5==4)
and or 연산을 그냥 영어로 한다
score = 85
result = "success" if score>=80 else 'fail'
print(result)
원래 코드
a=[1,2,3,4,5]
remove_set=[3,5]
result=[]
for i in a:
if i not in remove_set:
result.append(i)
print(result)
줄인 코드
a=[1,2,3,4,5]
remove_set=[3,5]
result=[i for i in a if i not in remove_set]
print(result)
range(1,10)
# (for i = 1; i<10; i++)
range(5)
# 첫 값이 0으로 자동설정
print((lambda a,b: a+b)(3,7))
n=int(input()) # 줄바꿈 함수
a = list(map(int,input().split()))
print(a)
import sys
data = sys.stdin.readline().rstrip()
print(data)
그래서 sys를 이용
rstrip() 은 줄바꿈을 제거해주는 함수
print("안녕" + str(7) + "입니다")
answer = 88
print(f"안녕 {7}")
print(f"안녕 {answer}")
내장함수 ( print, input, sorted )
itertools : 순열과 조합등
heapq : heap
bisect : 이진탐색
collections : 덱, 카운터 등
math
print(sum([1,2,3,4]))
print(min([1,2,3,4]))
print(max([1,2,3,4]))
result = eval("(3+5)*7")
print(result)
result = sorted([('a',30),('b',60),('c',70)],key=lambda x:x[1],reverse=False)
print(result)
permutations
combinations
from itertools import permutations
data = ['a','b','c']
result = list(permutations(data,2))
print(result)
from itertools import combinations
data = ['a','b','c']
result = list(combinations(data,2))
print(result)
순열 중복허용
from itertools import product
data = ['a','b','c']
result = list(product(data,repeat=2))
print(result)
조합 중복허용
from itertools import combinations_with_replacement
data = ['a','b','c']
result = list(combinations_with_replacement(data,2))
print(result)
파이썬 heap = 최소힙 O(nlogn)
heapq.heappush()
# 삽입
heapq.heappop()
# 제거
사용법
def heapsort(data):
h=[]
result=[]
for value in data:
heapq.heappush(h, value)
for i in range(len(h)):
result.append(heapq.heappop(h))
return result
result = heapsort([1,3,5,7,9,11,131,15])
print(result)
def heapsort(data):
h=[]
result=[]
for value in value:
heapq.heappush(h, -data)
for i in range(len(h)):
result.append(-heapq.heappop(h))
return result
result = heapsort([1,3,5,7,9,11,131,15])
print(result)
bisect_left()
bisect_right()
from bisect import bisect_left,bisect_right
a=[1,2,4,4,4,4,5,8,9]
x=4
print(bisect_left(a,x))
# 2
print(bisect_right(a,x))
# 6
어느 곳에 삽입될지 정하는 method
만약 값이 동일하다면 left는 왼쪽, right는 오른쪽 index를 반환해줌
from bisect import bisect_left,bisect_right
def count_by_range(a,left_value,right_value):
right_index = bisect_right(a,right_value)
left_index = bisect_left(a,left_value)
return right_index-left_index
a=[1,2,3,3,3,3,3,4,4,4,4,8,9]
print(count_by_range(a,4,4))
# 값이 4인 data 개수 출력
print(count_by_range(a,-1,3))
# 값이 -1~3인 데이터 개수 출력
from collections import deque
data = deque([1,2,3,4])
data.popleft()
data.append(33)
print(data)
queue 를 사용할때는
poll() = popleft()
offer() = append()
from collections import Counter
counter = Counter(['blue','blue','red'])
print(counter['blue'])
횟수 세줌
import math
print(math.factorial(10))
print(math.sqrt(7))
# 제곱근
print(math.gcd(21,14))
# 최대공약수