◎ Programmers
이번 학습 노트는 오늘 풀어본 문제에 대한 내용이 아닌 8월 마지막 주에 풀었던 문제에 대한 내용이다. 지금까지 문제를 풀면서 익힌 함수들만 잘 숙지하더라도 앞으로의 문제를 푸는데는 어려움이 없을 것 같다. 문제를 풀수록 느끼지만 코테는 역시 알고리즘의 싸움인 것 같다.
---
1-1) sort()
sort() 함수는 리스트의 요소를 정렬해주는 함수이다. 이때 기본값은 오름차순이다. 주의할 점으로는 같은 데이터 타입에 대해서만 정렬이 가능하다는 점이다. 이는 당연한게 데이터 타입이 다르면 정렬이라는 개념을 사용할 수 없기 때문이다.
list_a = ['z', 'b', 'a', 'c', 'e']
print(f"정렬 전: {list_a}")
list_a.sort()
print(f"정렬 후: {list_a}")
print()
list_b = [5, 2, 4, 1, 3]
print(f"정렬 전: {list_b}")
list_b.sort()
print(f"정렬 후: {list_b}")
정렬을 내림차순으로 하고 싶다면 다음과 같이 옵션을 설정해주면 된다.
list.sort(reversed=True)
list_a = ['z', 'b', 'a', 'c', 'e']
print(f"정렬 전: {list_a}")
list_a.sort(reverse=True)
print(f"정렬 후: {list_a}")
print()
list_b = [5, 2, 4, 1, 3]
print(f"정렬 전: {list_b}")
list_b.sort(reverse=True)
print(f"정렬 후: {list_b}")
아까 말했듯 기본값은 오름차순이라 했는데 이는 'reverse=False'인 것이다. sort() 함수의 주의사항으로는 sort() 함수를 사용하여 정렬을 하게 되면 기존 리스트에서의 변경이 일어난다. 즉, 원본 리스트가 보존되지 않는다는 것이다.
1-2) sorted()
sorted() 함수는 sort() 함수와 동일하게 '정렬'을 해주는 함수이지만 sort() 함수와는 달리 원본 리스트에서의 정렬이 아닌 새로운 정렬된 리스트를 반환한다는 특징이 있다. 또한 sort() 함수와 사용법이 조금 다르다는 차이점도 있다. 위 예제를 sorted() 함수로 정렬해보도록 하겠다.
list_a = ['z', 'b', 'a', 'c', 'e']
print(f"정렬 전: {list_a}")
print(f"정렬 후: {sorted(list_a)}")
print()
list_b = [5, 2, 4, 1, 3]
print(f"정렬 전: {list_b}")
print(f"정렬 후: {sorted(list_b)}")
sorted() 함수도 sort() 함수와 동일하게 기본값이 오름차순이므로 내림차순으로 정렬하고 싶다면 sort() 함수와 동일하게 'reverse=True' 옵션을 설정해주면 된다.
list_a = ['z', 'b', 'a', 'c', 'e']
print(f"정렬 전: {list_a}")
print(f"정렬 후: {sorted(list_a, reverse=True)}")
print()
list_b = [5, 2, 4, 1, 3]
print(f"정렬 전: {list_b}")
print(f"정렬 후: {sorted(list_b, reverse=True)}")
sorted() 함수는 문자열과 딕셔너리도 정렬할 수 있다. 이와 함께 정렬 후에도 원본이 보존되는 것을 아래 예시를 통해 확인해보자.
string = "aAbBcCdD"
print("문자열 정렬:", sorted(string))
print()
dict_a = {
'd': 40,
'b': 20,
'a': 10,
'c': 30
}
print("key 값만 정렬:", sorted(dict_a))
print("key, value 모두 출력:", sorted(dict_a.items()))
print()
print("---원본 보존 확인---")
print(string)
print(dict_a)
2) startswith(), endswith()
이 두 함수는 문자열 데이터에 대한 함수로, 반환 데이터 타입은 bool(True/False)형이다.. startswith() 함수는 시작 문자열이 괄호 안의 문자열인지 확인하는 함수이고, endswith() 함수는 끝 문자열이 괄호 안의 문자열과 같은지 확인하는 함수이다.
string = "aaaPYTHONbbb"
print("---시작 문자열 찾기---")
print(string.startswith("aaa"))
print(string.startswith("PYTHON"))
print(string.startswith("bbb"))
print()
print("---끝 문자열 찾기---")
print(string.endswith("aaa"))
print(string.endswith("PYTHON"))
print(string.endswith("bbb"))