본문 바로가기
알고리즘 이론

Python 문법 정리

by 햄과함께 2021. 9. 25.
320x100

참고 : https://programmers.co.kr/learn/courses/4008

 

파이썬을 파이썬답게

본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코

programmers.co.kr


배열

 map(함수, 리스트)  : 리스트 요소들에 함수를 적용한 값을 반환

 

 * symbol  : 배열 요소들 출력시 요소값만 출력하고 싶을 때 사용.

answer = [1,2,3]

print(answer) 
# [1, 2, 3]

print(*answer)
# 1 2 3

 zip  : 각 iterables 요소를 모으는 iterator 생성 (공식문서)

a = [1,2,3]
b = [4,5,6]

list(zip(a, b))
# [(1, 4), (2, 5), (3, 6)]
a = [1,2,3]
b = [4,5,6]
c = [7,8,9]

for n1, n2, n3 in zip(a,b,c):
    print(n1,n2,n3)
    
# 1 4 7
# 2 5 8
# 3 6 9

zip을 이용하면 인덱스로 접근하지 않고 여러 배열들을 한 번에 동일한 인덱스 요소값들에 접근할 수 있다.

 

 len  : 배열 size 구하기

len([1,2,3]) # 3

 

 join  : 배열들을 문자열로 변환. 구분자 지정가능.

arr = ['100', '000', '000']
','.join(arr) # 100,000,000

 

 reversed  : 배열을 역순으로 나열한 오브젝트 반환 (공식문서)

arr = [1,3,2,6,5]
print(list(reversed(arr)))
# [5, 6, 2, 3, 1]

 

 min  (문서) : 배열의 최소값 요소 반환

 list.index(value)  (문서) : 배열에서 value와 동일한 요소의 index 반환

arr = [1,3,2,6,5]
min_ele = min(arr)
min_ind = arr.index(min_ele)
print(min_ele, min_ind)
# 1 0

 

정렬

(cf. 공식 문서)

 sorted(list)  : 정렬된 새로운 리스트 반환

 list.sort()  : sorted 함수를 list배열에 적용

 

sorted(list, reverse=True) : 역정렬된 리스트 반환

list = [1,2,3]

sorted(list, reverse=True)
list.sort(reverse=True)
# [3, 2, 1]

 functolls.cmp_to_key  : 해당 함수를 이용하여 key에 custom한 함수를 적용하여 배열을 정렬할수도 있다. 2.x 버전에서는 cmp 파라미터를 내부적으로 제공했는데 3.x 오면서 여러 이유로 삭제된 듯 하다. 

from functools import cmp_to_key

list = [5, 4, 3, 2, 1]

# 짝수 먼저, 작은 수 먼저
def custom(a, b):
    if a%2 == 0 and b%2 == 1:
        return -1
    elif a%2 == 1 and b%2 == 0:
        return 1
    elif a < b:
        return -1
    return 1

print(sorted(list, key=cmp_to_key(custom)))

문자열

정렬

 str.ljust(width[,fillchar])  : 왼쪽 정렬

 str.center(width[,fillbyte])  : 가운데 정렬

 str.rjust(width[,fillbyte])  : 오른쪽 정렬

 

width : 전체 폭 넓이. width가 str 문자열의 길이보다 작거나 같은 경우 원본 문자열 str을 반환한다.

fillbyte : 여백(padding)을 채울 문자를 지정할 수 있다. default는 빈 문자(스페이스)이다. ' '

s = 'ABC'
n = 10

s.ljust(n,'a')
# ABCaaaaaaa

s.center(n,'a')
# aaaABCaaaa

s.rjust(n,'a')
# aaaaaaaABC

 

기본 상수로 알파벳 소문자, 대문자, 숫자들 등을 제공하고 있다. (cf. 공식 문서)


int

생성자에 진법 명시 가능 (cf. 공식 문서)

 class int(x, base=10) 

num = str(10)

int(num, 2)
# 2

int(num, 5)
# 5

int(num, 10)
# 10

int(num, 20)
# 20

 

 str(int형)  : int형을 string 형으로 변환

num = 10

type(num)
# <class 'int'>

type(str(num))
# <class 'str'>

 

기타

 lambda 함수  

lambda x, y: x+y

 ord(c) 함수  

 

문자의 유니코드 값을 반환


Sorted List (문서)

from sortedcontainers import SortedList

sortedNums = SortedList([1,3,2,6,4])
# [1, 2, 3, 4, 6]

sortedNums.pop(2)
# [1, 2, 4, 6]

sortedNums.add(5)
# [1, 2, 4, 5, 6]

 

Queue

queue = []
queue.append(0)
queue.append(1)
queue.append(2)

print(queue[0]) # 0
print(queue[-1]) # 2
queue = []
queue.append((0, 'name'))

print(queue[0][0], queue[0][1])
# 0 name

queue.pop(0)
320x100

'알고리즘 이론' 카테고리의 다른 글

배열 행 우선 순위, 열 우선 순위  (1) 2022.03.09
투포인터 (Two pointer)  (0) 2021.09.12
유니온 파인드(Union-Find)  (5) 2021.06.26
플로이드 워셜 알고리즘 (Floyd warshall)  (0) 2021.06.13
트리의 지름  (0) 2021.02.21

댓글