프로그래밍 언어/Python

프로그래밍 언어/Python

[Python] 문자열인지 숫자인지 판별하기

1. 숫자 판별 - isdecimal( ), isdigit( ), isnumeric( ) 보통 isdigit( )을 가장 많이 쓴다. s = "28212" print(s.isdigit())# True # contains alphabets and spaces s = "Mo3 nicaG el l22er" print(s.isdigit())# False 셋 다 숫자 판별에 쓰이는 함수이다. 무슨 차이일까? isdecimal( ) ⊆ isdigit( ) ⊆ isnumeric( ) isdecimal( ): 어떤 문자열이 int형으로 변환이 가능하면 True를 반환한다. isdigit( ): 어떤 문자열이 숫자의 형태면 True를 반환한다. (예: 3², ², ..) isnumeric( ): 숫자값 표현에 해당하는 ..

프로그래밍 언어/Python

[Python] 순열, 조합 구현하기 - itertools & recursion

1. itertools를 이용한 방법 파이썬에 내장된 itertools패키지의 combinations모듈과 permutations모듈을 통해 손쉽게 순열과 조합을 구할 수 있다. 이때, 만들어진 순열과 조합은 튜플의 형태로 리스트에 담겨서 반환된다. -> ([(0, 1, 2), ...]) 조합 from itertools import combinations arr = [0, 1, 2, 3, 4, 5] print(list(combinations(arr, 3))) 순열 from itertools import permutations arr = [0, 1, 2, 3, 4, 5] print(list(permutations(arr, 3))) 2. 재귀를 이용한 방법 재귀를 이용해서 조합과 순열을 구할 수 있다. 기본..

프로그래밍 언어/Python

[Python] 파이썬 커스텀 정렬 - sort(), sorted()

파이썬은 정렬 함수를 기본으로 제공한다. sort()와 sorted()의 차이를 살펴보고 key 매개변수와 lambda 함수를 활용한 커스텀 정렬을 살펴본다. 1) Sort() vs Sorted() sort() .sort([key = ], [reverse = True|False]) 리스트 자료형에서만 사용 가능하다. 원래의 리스트가 변경된다(in-place). 아무것도 반환하지 않는다(None 리턴). 리스트를 정렬할 땐 sorted()보다 빠르다. reverse 매개변수로 True를 전달하면 내림차순 정렬할 수 있다. sorted() sorted(, [key = ], [reverse = True|False]) 모든 iterable한 객체에서 사용 가능하다. 원래의 리스트는 변화가 없다. 정렬된 새로운 ..

프로그래밍 언어/Python

[Python] 리스트 순회 중 변경이 필요할 때

리스트을 순회하는 과정에서 데이터를 변경하다가 에러가 나는 경우는 굉장히 잦다. 특히 그 중에서 삭제는 가장 까다롭다. 이때, 리스트 표현식과 슬라이싱을 활용하여 데이터를 변경할 수 있다. 문제 예제 lost = [2,4]; reserve = [1,2,5] for i in range(len(reserve)): if reserve[i] in lost: del reserve[i] print(reserve) ''' Traceback (most recent call last): File "main.py", line 3, in if reserve[i] in lost: IndexError: list index out of range ''' 해결방법 리스트 표현식(List Comprehension) + 슬라이싱 lo..

프로그래밍 언어/Python

[Python] 파이썬 기본 연산 시간복잡도(Big-O)

알고리즘 문제들을 풀 땐 시간복잡도와 공간복잡도가 중요하다. 그 중 파이썬에서 자주 쓰이는 연산들의 시간복잡도를 자료형에 따라 정리했다. 리스트(List) Operation Example Complexity Notes Index l[i] O(1) Store l[i] = 0 O(1) Length len(l) O(1) Append l.append(5) O(1) Pop l.pop() O(1) same as l.pop(-1), popping at end Clear l.clear() O(1) similar to l = [] Slice l[a:b] O(b-a) l[1:5]:O(l)/l[:]:O(len(l)-0)=O(N) Extend l.extend(...) O(len(...)) depends only on len ..

코택
'프로그래밍 언어/Python' 카테고리의 글 목록