Python/Python 기본개념
iterable, sequence, divmod,정렬,string모듈,zip(),함수시작,타입변환,이어붙이기join(), 곱집합,2차원리스트1차원리스트로,순열과조합
GLOWWW
2021. 3. 14. 13:38
iterable : 자신의 멤버를 한 번에 하나씩 리턴할 수 있는 객체. list, str, tuple, dict 등
sequence: int 타입 인덱스를 통해, 원소에 접근할 수 있는 iterable 이다. iterable의 하위 카테고리라고 생각하면 된다. list, str, tuple이 여기에 속한다.
divmod()를 사용하면 몫과 나머지를 구해준다. 작은 숫자를 다룰 때는 각각 구하는 것 보다 느리다.
ex)
a = 7
b = 5
print(*divmod(a, b))
n진법으로 표기된 string을 10진법 숫자로 변환하기 - int 함수
num, base = map(str, input().split())
answer = int(num, int(base))
print(answer)
문자열 정렬하기
s, n = input().strip().split(' ')
n = int(n)
print(s.ljust(n))
print(s.center(n))
print(s.rjust(n))
알파벳 출력하기 - string모듈
import string
string.ascii_lowercase # 소문자 abcdefghijklmnopqrstuvwxyz
string.ascii_uppercase # 대문자 ABCDEFGHIJKLMNOPQRSTUVWXYZ
string.ascii_letters # 대소문자 모두 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
string.digits # 숫자 0123456789
zip()함수는 여러 시퀀스를 병렬로 순회할 수 있다. 여러 시퀀스 중 가장 짧은 시퀀스가 완료되면 zip()은 멈춘다.
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_list = list(map(list, zip(*mylist)))
i번째 원소와 i+1번째 원소
def solution(mylist):
answer = []
for number1, number2 in zip(mylist, mylist[1:]):
answer.append(abs(number1-number2))
return answer
if __name__ == '__main__':
mylist=[83,48,13,4,71,11]
print(solution(mylist))
type 변환
def solution(mylist):
answer = []
answer = list(map(int, mylist))
return answer
sequence멤버를 하나로 이어붙이기 - join
answer = ''.join(mylist)
곱집합(Cartesian product)
ex)
두 스트링 'ABCD', 'xy' 의 곱집합은 Ax Ay Bx By Cx Cy Dx Dy 입니다.
import itertools
iterable1 = 'ABCD'
iterable2 = 'xy'
iterable3 = '1234'
print(list(itertools.product(iterable1, iterable2, iterable3)))
2차원 리스트를 1차원 리스트로 만들기
ex)[['A', 'B'], ['X', 'Y'], ['1']] >>> ['A', 'B', 'X' ,'Y', '1']
def solution(mylist):
answer = sum(mylist, [])
return answer
제한적으로 numpy 라이브러리의 flatten을 이용해서 할 수 있는데, 이는 각 원소의 길이가 동일한 경우에만 사용이 가능하다.
import numpy as np
np.array(mylist).flatten().tolist()
순열과 조합
for문을 사용하지 않고 itertools.permutation을 이용할 수 있다.
import itertools
def solution(mylist):
mylist.sort()
answer = list(map(list, itertools.permutations(mylist)))
return answer