타입별 메서드
<문자열 메서드>
* 특정메서드가 어떤 기능을 하는 지 아는 것도 중요하지만 그 메서드가 예외상황에서 어떤 행동을 하는 지 아는 것 또한 중요
1. count : 문자열 내에서 특정 문자가 몇 개나 있는지 세는 메서드
text = "Hello, World!"
count = text.count("l")
print(count) # 3
2. find : 문자열 내에서 특정 문자열이 처음 나오는 위치를 찾아주는 메서드 (없을 경우 -1 return)
text = "Hello, World!"
position = text.find("World")
print(position) # 7
3. index : 문자열 내에서 특정 문자열이 처음 나오는 위치를 찾아주는 메서드 (없을 경우 ValueError)
text = "Hello World!"
try:
position = text.index("World")
print(position) # 7
except ValueError:
print("찾는 문자열이 없습니다.")
=> 같은 기능이라도 없을 경우 반환 값이 다르기 때문에 예외처리가 달라진다.
find의 경우 if,else 처리이며 index의 경우 try,except를 사용하는 차이
4. join : 특정 문자열을 기준으로 다른 문자열들을 합쳐주는 메서드(문자열 리스트를 하나의 문자열로 변환)
fruits = ["apple","banana","cherry"]
joined_fruits = ", ".join(fruits)
print(joined_fruits) # "apple, banana, cherry"
join() 메소드는 문자열 이외의 다른 데이터 타입도 사용할 수 있지만, join() 메소드를 사용하기 전에 반드시 str() 메소드를 사용하여 문자열로 변환하는 작업이 필요
5.
- upper : 문자열 내 모든 소문자 -> 대문자 바꿔주는 메서드
- lower : 문자열 내 모든 대문자 -> 소문자 바꿔주는 메서드
text = "Hello, World!"
uppercase_text = text.upper()
print(uppercase_text) # "HELLO, WORLD!"
lowercase_text = text.lower()
print(lowercase_text) # "hello, world!"
6. replace : 문자열 내에서 특정 문자열을 다른 문자열로 바꾸는 메서드
text = "Hello, World!"
replaced_text = text.replace("World", "Python")
print(replaced_text) # "Hello, Python!"
7. split : 문자열을 특정 문자를 기준으로 나누는 메서드 (결과는 리스트의 형태로 반환)
text = "apple,banana,cherry"
fruits = text.split(",")
print(fruits) # ['apple','banana','cherry']
<리스트 메서드>
1. len : 리스트 길이 반환하는 내장 함수
numbers = [1,2,3,4,5]
print(len(numbers)) # 5
2. del : 리스트 내 특정 요소 삭제
numbers = [1,2,3,4,5]
del numbers[2]
print(numbers) # [1,2,4,5]
3. append : 리스트의 맨 뒤에 새로운 요소를 추가하는 메서드
numbers = [1,2,3,4,5]
numbers.append(6)
print(numbers) # [1,2,3,4,5,6]
4. sort : 리스트를 오름차순으로 정렬하는 메서드
numbers = [3,2,4,1,5]
numbers.sort()
print(numbers) # [1,2,3,4,5]
+) sort() 와 sorted()의 차이점?
sort()는 리스트 자체를 정렬하여 원본 리스트를 변경하기 때문에 원본 리스트를 사용하는 다른 코드에서도 정렬된 상태로 사용된다.
sorted()는 원본 리스트를 변경하지 않고, 새로운 정렬된 리스트를 반환한다.
5. reverse : 리스트의 요소 순서를 반대로 뒤집는 메서드
reverse = [1,2,3,4,5]
numbers.reverse()
print(numbers) # [5,4,3,2,1]
6. index : 리스트에서 특정 요소의 인덱스를 반환하는 메서드
fruits = ['apple','banana','cherry']
print(fruits.index('banana')) # 1
7. insert : 리스트의 특정 위치에 요소를 삽입하는 메서드
numbers = [1,2,3,4,5]
nubers.insert(2, 10)
print(numbers) # [1,2,10,3,4,5]
8. remove : 리스트에서 특정 요소를 제거하는 메서드
numbers = [1,2,3,4,5]
numbers.remove(3)
print(numbers) # [1,2,4,5]
9. pop : 리스트에서 마지막 요소를 빼낸 뒤, 그 요소를 삭제하는 메서드
numbers = [1,2,3,4,5]
numbers.pop(3)
print(numbers) # [1,2,3,5]
my_list = [1,2,3,4,5]
popped_element = my_list.pop(1)
print(popped element) # 출력 : 2
print(my_list) # [1,3,4,5]
10. count : 리스트에서 특정 요소의 개수를 세는 메서드
numbers = [1,2,3,3,4,5]
print(numbers.count(3)) # 2
11. extend : 리스트를 확장하여 새로운 요소들을 추가하는 메서드
numbers = [1,2,3]
numbers.extend([4,5,6])
print(numbers) # [1,2,3,4,5,6]
+) '+=' 연산자를 사용해서도 구현할 수 있음
numbers = [1,2,3]
numbers += [4,5,6]
print(numbers) # [1,2,3,4,5,6]
<딕셔너리 메서드>
- 딕셔너리는 "키-밸류" 쌍으로 저장되는 데이터 타입
- 딕셔너리의 시간복잡도는 상수값을 가진다.
- 삽입(Insertion): O(1)
- 삭제(Deletion): O(1)
- 검색(Search): O(1)
따라서, 딕셔너리는 대용량의 데이터를 다룰 때 매우 유용하다. .
1. 딕셔너리에 쌍 추가
my_dict = {"apple" : 1, "banana" : 2, "orange" : 3}
my_dict["grape"] = 4
print(my_dict) # {"apple" : 1, "banana" : 2, "orange" : 3, "grape" : 4}
2. del : 딕셔너리에서 특정 요소를 삭제
my_dict = {"apple" : 1, "banana" : 2, "orange" : 3}
del my_dict["apple"]
print(my_dict) # { "banana" : 2, "orange" : 3}
3. items : 딕셔너리의 모든 키와 값을 튜플 형태의 리스트로 반환
person = {"name" : "John", "age" : 30, "gender" : "male"}
items = person.items()
print(items) # dict_items([('name', 'John'), ('age', 30), ('gender', 'amle')])
4. clear : 딕셔너리의 모든 요소를 삭제
person = {"name" : "John", "age" : 30, "gender" : "male"}
person.clear()
print(person) # {}
5. get : 딕셔너리에서 지정한 키에 대응하는 값을 반환 (딕셔너리에 Key가 없는 경우, None 반환)
person = {"name" : "John", "age" : 30, "gender" : "male"}
name = person.get('name')
print(name) # John
email = person.get('email')
print(email) # None
#디폴트 값 지정
email = person.get('email', 'unknown')
print(email) # unknown
+) Django에서 request.POST['key'] 와 request.POST.get('key') 의 차이점?
=> get을 사용하는 방법이 더 안전하다.
그 이유는 두 방식은 모두 딕셔너리에 접근하여'key'에 해당하는 데이터를 가져올 수는 있지만
request.POST['key']는 해당 key가 존재하지 않을 경우 KeyError 예외 발생
request.POST.get['key']는 key가 존재하지 않을 경우 None을 반환하며, None대신 반환할 디폴트 값을 지정할 수 있다.
6. in : 해당 키가 딕셔너리 안에 있는지 확인
- in 메서드는 시퀀스 자료형(튜플,리스트,문자열 등..)에서 특정 원소가 들어있는지 확인하기 위해 사용
- 일반적으로 조건문(if)에 자주 사용
fruits = ['apple', 'banana', 'kiwi']
if 'apple' in fruits: # 리스트안에 'apple'이 있다면
print('애플이다')
else:
print('애플이 없다')
person = {"name" : "John", "age" : 30, "gender" : "male"}
print('name' in person) # True
print('email' in person) # False
'Python' 카테고리의 다른 글
Python <코드 컨벤션, 정규 표현식, 여러가지 모듈> (0) | 2023.04.04 |
---|---|
파이썬 <kwargs, args / 패킹, 언패킹에 관하여> (0) | 2023.04.01 |
python 타입힌트와 데코레이터 여러 예시 (0) | 2023.04.01 |
파이썬 기초문법 8 <예외처리, finally, 모듈, 패키지> (0) | 2023.03.23 |
파이썬 기초문법7 <메소드 오버로딩, pass, super> (0) | 2023.03.23 |