[python] 코딩테스트에서 알아두면 좋은 기본 함수
Python 기본 문법을 알고 있다고 가정할 때, 추가적으로 알고 있으면
코딩테스트 등에서 효율적으로 사용할 수 있는 몇 가지 함수들을 정리해두었다.
1. list()
괄호 속 string을 배열로 바꿔 준다.
ex)
list("fjs123")
#결과 : ['f', 'j', 's', '1', '2', '3']
2. "".join()
"구분자".join(배열)
의 형태로 작성 시, 배열을 하나의 string으로 바꾸어 준다.
ex)
"_".join(['1', '24','a']) # result : '1_24_a'
"".join(['1', '24','a']) # result : '124a'
3. map()
list(map(함수A, 리스트A))
형태로 사용하면, 리스트A 속 원소들로 하나씩 함수A를 실행한 결과 리스트를 얻을 수 있다.
(리스트 대신 튜플을 사용해도 무방하다.)
ex)
list(map(int, [1.2, '2', 3.7, '4'])) # result : [1, 2, 3, 4]
list(map("".join, [['1.2', '2'], ['3.7', '4']])) # result : ['1.22', '3.74']
4. enumerate()
반복문에서 해당 함수를 이용하면, 리스트의 원소와 인덱스를 동시에 사용할 수 있다.
ex)
for index, element in enumerate(리스트) :
5. permutations()
itertool의 permutations() 함수를 이용하면, 배열 속 원소로 만들 수 있는 모든 길이 n의 순열을 구할 수 있다.
from itertool import permutations
를 선언한 후
permutations(배열, 개수)
형태로 사용한다.
from itertool import permutations
permutations(배열, 개수)
6. zip()
매개변수로 받은 배열들을 같은 index끼리 매칭하여 묶어준다.
list(zip([1,2,3], [a, b, c])) #result :[(1, a), (2, b), (3, c)]
1. 집합 set
python의 set은 집합을 의미한다.
집합의 특성을 활용하여, 중복제거 등 여러 유용한 작업을 수행할 수 있다.
A. 선언 : set()
집합 선언을 선언할 땐 set() 함수를 사용할 수 있다.
예)
a=set() # {}
a=set([1,2,3]) # {1, 2, 3}
집합을 선언할 때 한 가지 주의할 점이 있다.
집합을 만들고 나면 출력 형태는 { } 이지만, 선언 시 a={}라고 하면 안 된다는 것이다.
이는 {}는 그 자체론 dictionary를 의미하기 때문이다.a={} print(type(a)) # <class 'dict'>
를 시도해보면 이를 확인할 수 있다.
따라서 반드시a={1,2,3} a=set() a=set([1,2,3])
등의 방식을 사용해야 한다.
B. 중복삭제
집합의 가장 유용한 특성은 중복이 사라진다는 것이다.
즉 리스트에서 중복을 삭제하고 싶을 땐,
set(리스트) 함수로 집합으로 바꾸면 쉽게 할 수 있다.
예)
set(['1', '1', '3', '2', '2', 'a', 'a']) # result : {'3', '1', 'a', '2'}
C. 추가/제거
집합에 원소를 추가하거나 제거하는 작업은 함수로 간단히 할 수 있다.
집합.add(원소) # 한 개 추가
집합.update(배열/집합) # 여러 개 추가
집합.remove(원소) # 하나 삭제(원소가 없으면 KeyError)
집합.discard(원소) # 하나 삭제(원소가 없어도 에러 발행하지 않음)
D. 집합 연산
집합의 기본적인 연산인 합집합, 교집합, 차집합, 대칭차집합도 모두 간단히 계산할 수 있다.
연산자(|&-^)로 하는 방식과 함수로 하는 방식 2가지가 있다.
- 합집합
집합A | 집합B
집합A.union(집합B)
- 교집합
집합A & 집합B
집합A.intersection(집합B)
- 차집합
집합A - 집합B
집합A.difference(집합B)
- 대칭차집합(합집합 - 교집합)
집합A ^ 집합B
집합A.symmetric_difference(집합B)
Author And Source
이 문제에 관하여([python] 코딩테스트에서 알아두면 좋은 기본 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@recoder/python-코딩테스트에서-알아두면-좋은-기본-함수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)