티스토리 뷰

알고리즘

[CodingTest] Python method 정리

Happyoon ~ 2021. 11. 16. 22:46
728x90
반응형

1. .split() 메서드 사용 시 반환값은 list 이다.

2. *args : 몇 개를 입력받을지 모를때 사용

3. map(함수, 객체) -> 객체를 함수를 통해 변경

  • map(int, thisisList) 수행시, thisisList 내의 원소를 int 형식으로 변경해줌.
  • 반환값은 map 형식이므로, list 형식으로 다시 바꾸고싶다면 list(map()) 형식 사용.

4. '구분자'.join(리스트)

  • 리스트에 있는 요소 하나하나를 합쳐 하나의 문자열로 변환. 
  • 구분자는 리스트의 요소들 사이에 들어간 형태.

   ex) '_'.join(['a', 'b', 'c']) 라 하면 "a_b_c"

 '_'.join(['a', 'b', 'c']) 
 # 결과값: "a_b_c"


5. arr[A:B:C]

  • index A 부터 B까지 C의 간격으로 배열을 만들어라 
  • A가 None이면 처음부터, B가 None이면 끝까지,C가 - 라면 역순으로.

6. .reverse()

  • 배열 원소를 거꾸로 하고 싶다면 .reverse() 사용.
  • 반환값이 없음. arr 자체가 뒤집어지는 것.

7. .upper() : 소문자 => 대문자

8. .lower() : 대문자 => 소문자

 

9. lstrip / rstrip / strip

  • 왼쪽/오른쪽/양쪽 공백 지우기
  • 왼쪽/오른쪽/양쪽의하나 이상의 공백 지우기
a = " hi "
a.lstrip()
# a = "hi "
a.rstrip()
# a ="hi"

b = "  Hello   "
b.strip()
#b = "Hello"

 

10. .replace() : 문자열 바꾸기

11. .split() : 문자열 나눠 리스트에 저장하기 

 

12. 배열 원소 갯수 구하기

list.count(찾는 값)

13. 문자열 내에 원하는 값의 갯수 구하기

str.count(찾는 값)

14. 원소 중복 제거하기

  • set() 사용 
  • 다시 리스트 형식으로 바꾸고 싶다면 list(set()) 사용하기 

 

15. set 안의 값 제거하기

  • .remove()
  • .discard()
s.remove(원하는 값)
#remove 사용 시, 지우고자 하는 값이 없으면 keyerror 발생
s.discard(원하는 값)
#discard 사용 시, 지우고자 하는 값이 없어도 keyerror 발생x

 

16. 이차원 리스트에서 중복 제거하기

1. 리스트를 튜플로 변경

2. set함수 사용하여 중복값 제거

3. 다시 리스트로 변경

4. 결과: [( ),( )] 형태 

print(list(set(map(tuple, lst))))
#1. map을 사용하여 tuple은 hashable, 변경 불가 이므로 list를 tuple로 만듦 
#2. set으로 튜플의 중복값 제거하기
#3. 다시 list로 변환하기

 

17. 배열 정렬하기

1) 오름차순 정렬

arr.sort(reverse = False)
sorted(arr,reverse = False)

 

2. 내림차순 정렬

arr.sort(key = lambda x:(조건))

  • 조건이 여러개인 경우, 튜플로 순서를 내보내주면 됨. 
  • 비교 함수는 lambda 이외에 별도로 정의하는 것도 가능함.
#arr.sort(key = lambda x:())
#key 인자에 함수를 넘겨주면, 해당 함수의 반환값을 비교하여 순서대로 정렬함


#예제. 결과값 비교해보기
arr = [[1,2],[3,20],[3,-1],[5,10],[1,9]]

arr.sort(key = lambda x:(arr[0]))
#[[1, 2], [1, 9], [3, 20], [3, -1], [5, 10]]

arr.sort(key = lambda x:(x[1]))
#[[3, -1], [1, 2], [1, 9], [5, 10], [3, 20]]

arr.sort(key = lambda x:(x[0],x[1]))
#[[1, 2], [1, 9], [3, -1], [3, 20], [5, 10]]

#첫번째 인자를 기준으로 오름차순 후에, 두번째 인자를 기준으로 내림차순 정렬
arr.sort(key = lambda x:(x[0],-x[1]))
#[[1, 9], [1, 2], [3, 20], [3, -1], [5, 10]]
arr.sort(reverse = True)
sorted(arr,reverse = True)

 

※ 역순으로 가져오기 

reversed(arr)

18. 삼항 연산자 

[True 조건] if 조건 else [False 조건]

예시

a = 10
b = 5

c = 1 if a>b else 0
print(c)

 

 

19. 조합

from itertools import combinations

combinations(arr, m)

*m = nCm에서의 m

from itertools import combinations
print(list(combinations([1,2,3,4],3)))

 

 

20. 순열

from itertools import permutations

permutations(arr, m)

 

21. zip()

순회 가능한 객체를 인자로 받고, tuple 반환

 

1) zip

absolutes = [4,7,12]
signs = [1,0,1]
for pair in zip(absolutes, signs):
	print(pair)

 

2) unzip

absolutes, numbers = zip(*pairs)

 

반응형

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

[알고리즘] 우선순위 큐, 힙 heap  (0) 2022.01.23
[알고리즘] 탐욕법 Greedy Algorithm  (0) 2022.01.23
[알고리즘] dfs와 bfs  (0) 2022.01.23
[알고리즘] 이분 탐색  (0) 2022.01.23
[알고리즘] 동적계획법  (0) 2022.01.23
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함