sort
리스트.sort() 는 본체의 리스트를 정렬해서 변환
sorted(리스트) 는 본체 리스트는 내버려두고, 정렬한 새로운 리스트를 반환
2차원 리스트에서 2번째 원소 오름차순 정렬
stack.sort(key = lambda x:x[1])
ex) 백준 1931번
2차원 리스트에서 원하는 요소 찾기
리스트 컴프리헨션
newlist=[(i,j) for i in range(n) for j in range(m) if mylist[i][j]==1]
내림차순 정렬
stack.sort(reverse=True)
리스트 비우기 stack.clear()
리스트 요소 제거
인덱스로 del stack[index]
stack.pop(index)
값으로 stack.remove(value)
print(5/2, 5//2, 5%2)
2.5 2 1
의미없는 소수점 제거하기
print ("%g" %(10.0/2) )
set()
집합으로 변환하여 리스트의 중복제거
2차원 배열 최댓값 찾기
max(map(max,배열이름))
-----------------------------------------------------------------------------------------------
리스트 복사
import copy
x = copy.deepcopy(list)
그냥 내장함수인 .copy를 한다면 가장 바깥쪽에 있는 리스트만 카피되어 안쪽 리스트는
같은 주소를 가리키게 됨 따라서 deepcopy를 이용해 리스트 전체를 copy해야함
-------------------------------------------------------------------------------------------------
딕셔너리 key, value값 리스트로 변환
a.key()
a.value()
최대공약수
math.gcd(a,b)
최소공배수
math.lcm(a,b)
제곱근
math.sqrt(i)
딕셔너리
stack[a] = 'b'
key = a
value = b
stack={a:b}
format
a= 3
b = 1
c= 2
print('{0} = {1} + {2}'.format(a,b,c))
->3 = 1 + 2
enumerate
stack = ['a','b','c']
for i, j in enumerate(stack) 일떄
i = 0 j = a 이다
절댓값
abs()
-----------------------------------------------------------------------------------------------
2진수를 8진수로 변환
oct(int(input(),2)) #2진수를 입력받아 10진수로의 변환을 거쳐 다시 8진수로 변환
2진수로 변환 bin()
8진수로 변환 oct()
16진수로 변환 hex()
10진수로 변환 int()
---------------------------------------------------------------------------------------------------
재귀를 활용한 풀이를 할 때
sys.setrecursionlimit(10**6)
파이썬의 기본 재귀 깊이가 1000으로 매우 얕은 편이니 런타임에러를 방지하는 이 코드는 필수다.
----------------------------------------------------------------------------------------------------
반복문으로 여러줄을 입력 받아야 할 때
input()을 쓰게 되면 시간 초과가 발생하게 된다.
sys.stdin.readline()
ex) word = sys.stdin.readline().split()
입력 : push 3 -> word[0] = push word[1] = 3
------------------------------------------------------------------------------------------------
Counter 딕셔너리 카운터
from collections import Counter
1. List = ["Hi", "How", "When"]
print(Counter(List)) -> Counter( { "Hi":1, "How":1, "When":1 } )
2. value = "Hello"
print(Counter(value)) -> Counter( { 'l':2, 'H':1, 'e':1, 'o':1 } )
Counter 내부 메소드
most_common() Counter()에서 가장 빈도수가 높은 순으로 표시해줌
most_common(2) '' 2개 표시해줌
-> [ ( 'l' , 2 ), ( 'o' , 2) ]
*가장 많이 나온 단어 l을 추출 하고 싶다면 most_common(2)[0][0]
counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
print(counter['blue])
-->3
print(dict(counter))
-->{ 'red' : 2, 'blue' : 3, 'green' : 1 }
----------------------------------------------------------------------------------------------------
최댓값 최솟값 설정
mx = -sys.maxsize
mn = sys.maxsize
함수에서 리스트자체를 리턴해도됨 ex)백준 9370
--------------------------------------------------------------------------------------------
조합
서로 다른 n개에서 순서에 상관 없이 서로 다른 r개를 선택하는 것
[A,B,C] -> AB, AC, BC
mCn = m! / (m-n)!n!
from itertools import combinations
data = ['A', 'B', 'C']
result = list( combinations (data,2) ) #data에서 2개를 골라 모든 조합 구하기
--> [(A,B), (A,C), (B,C)]
itertools.combinations를 사용하면 45개의 숫자 줏 6개를 선택하는 경우의 수를 다음과 같이 구할 수 있다.
>>> import itertools
>>> it = itertools.combinations(range(1, 46), 6)
itertools.combinations(range(1, 46), 6) 는 1~45의 숫자 중에서 6개를 뽑아내는 경우의 수를 이터레이터로 리턴한다.
중복조합
from itertools import combinations_with_replacement
data = ['A', 'B', 'C']
result = list( combinations_with_replacement (data,2) )
백준 14502 참조
-----------------------------------------------------------------------------------------------
순열
서로 다른 n개에서 서로 다른 r개를 선택하여 일렬로 나열하는 것
[A,B,C] -> ABC, ACB, BAC, BCA, CAB, CBA
from itertools import permutations
data = ['A', 'B', 'C']
result = list( permutations (data,3) ) #data에서 3개를 골라 순서를 나열
--> [(A,B,C), (A,C,B), (B,A,C), (B,C,A), (C,A,B), (C,B,A)]
중복순열
from itertools import product
data = ['A', 'B', 'C']
result = list( product (data, repeat = 3) )
출력 포맷 지정 예제
print("%5d %7d %07d %10s %7.3f" %(123, 456, 789, "python", 123.456789)
%5d : 총 5 칸 중 오른쪽으로 붙여서 출력 ex( 123)
%7d : 총 7 칸 중 '' ex( 456)
%07d : 총 7 칸 중 오른쪽으로 붙이고 빈칸에 0 삽입 ex(0000789)
%10s : 총 10 칸 중 오른쪽으로 붙여서 출력 ex( python)
%7.3f : 총 10 칸 중 소수점 3자리를 남기고 출력 ex(123.456)
정수 이진수 8진수 16진수 출력
for i in range(0, 257, 8):
print(" {:4d} {:09b} {:#05o} {:#05X}"\ .format(i, i, i, i))
'Language Syntax' 카테고리의 다른 글
CSS (0) | 2022.01.19 |
---|---|
Html (0) | 2022.01.19 |
Numpy (0) | 2022.01.19 |