포시코딩

12월27일 본문

TIL

12월27일

포시 2022. 12. 27. 14:16
728x90

Python 문자열 다루기 심화

'abcd'[1:3]

기존에 이런식의 쓰임새만 봐오다가

'abcd'[::-1]

이런 형태를 처음 접했는데 

알고보니 문자열 자르는 방법은 [시작:끝]이 아니라 [시작:끝:증가]였다.

 

이를 통해 문자열을 뒤집는 방법으로 [::-1]이 사용될 수 있다는걸 알게 되었다.

'123456789'[1:5:2] # 24

응용한다면 이런식으로도 사용이 가능한데,

Python 최대 강점이 문자열 쉽게 자르는 이 방법을 쓰는 것이니 앞으로도 유용하게 사용할 수 있을 것 같다.

 

divmod()

result = divmod(14, 3)
print(result)  # (4, 2)

divmod(x, y)에 대해 x를 y로 나눴을 때의 몫과 나머지를 (몫, 나머지)의 형태로 리턴하는 함수다.

이 함수를 사용한다면 몫 구하고 나머지 구하는 두 번의 코드를 쓸 필요 없이 

한 번으로 원하는 결과를 받을 수 있다.

 

Python index()와 find()의 차이

둘 다 값의 인덱스를 찾아 리턴하는 함수인건 같지만

index()는 find()와 다르게 찾는 값이 없으면 에러를 리턴한다.

find()는 찾는 값이 없을 경우 -1을 리턴한다.

def solution(str1, str2):
    return str1.find(str2)  # -1

solution("ppprrrogrammers", "pppp")
def solution(str1, str2):
    return str1.index(str2)  # ValueError: substring not found

solution("ppprrrogrammers", "pppp")

 

* 그리고 제일 중요한 점은 find()는 string에 대해서만 사용 가능하고 index()는 string, tuple, list에서도 사용 가능하다.

 

집합 자료형 set

코딩테스트 문제에 교집합을 구해야 하는 상황이 생겼는데

set을 이용해 아주 간단히 구하는 풀이가 있어 이번 기회에 제대로 정리했다. 

[집합 자료형 set]

 

집합 자료형 set

set 특징 중복을 허용하지 않는다. 중복을 허용하지 않기 때문에 중복을 제거하기 위한 필터로 종종 사용된다. 순서가 없다. 순서가 없기 때문에 저장된 값에 접근하려면 튜플 또는 리스트로 변

4sii.tistory.com

 이번 문제에서 사용한 풀이는 다음과 같다.

def solution(s1, s2):
    return len(set(s1) & set(s2))

set(list)로 간단히 list를 set 자료형에 담을 수 있고 &을 통해 교집합을 구해 len()으로 개수를 파악했다.

 

728x90

'TIL' 카테고리의 다른 글

12월29일  (0) 2022.12.29
12월28일  (0) 2022.12.27
12월26일  (0) 2022.12.25
12월25일  (0) 2022.12.24
12월24일  (0) 2022.12.24