요약/나만의 인사이트
- range(시작숫자, 종료숫자, step)
- range(3, 6)은 3부터 6직전까지의 숫자들의 컬렉션이다. 3, 4, 5
- range도 iterable(반복가능한) 타입이다. 즉 순차적으로 접근 가능한 객체를 말한다. 참고로 iterable한 타입은 list, tuple, dictionary, string, range 등이 있다.
- 다만 range의 값을 확인하기 위해서 다른 순서 있는 컬렉션으로 변환해야 한다. list(range(5, 10)) >> [5, 6, 7, 8, 9]
- if a > b: a, b = b, a
- a > b 이면 a에는 b를 b에는 a를 담아라
- list.sort() vs sorted()
- list.sort() : list 객체 자체를 정렬해주는 함수, 리스트에서만 사용 가능
- list.sort(reverse=False) _ 오름차순 정렬 _ 기본
- list.sort(reverse=True) _ 내림차순 정렬
- sorted() : 파이썬 내장함수, 정렬해서 새로운 변수에 반환
a = [1, 4, 2, 6, 1, 9, 10] ##list.sort() -- 리스트 매써드 #리스트 오름차순 정렬 a.sort() print(a) # [1, 1, 2, 4, 6, 9, 10] #리스트 내림차순 정렬 a.sort(reverse=True) print(a) # [10, 9, 6, 4, 2, 1, 1] b = ["apple", "banana", "pineaopple", "orange", "oil"] ## sorted() -- 파이썬 내장 함수 #알파벳 기준, 오름차순 정렬한 리스트 반환하기 new_b = sorted(b) print(new_b) # ['apple', 'banana', 'oil', 'orange', 'pineaopple'] #알파벳 기준, 내림차순 정렬한 리스트 반환하기 new_b = sorted(b, reverse=True) print(new_b) # ['pineaopple', 'orange', 'oil', 'banana', 'apple'] - list.sort() : list 객체 자체를 정렬해주는 함수, 리스트에서만 사용 가능
- join() : 문자열 데이터를 이어붙이기, 단 문자열은 반복가능한 객체(리스트, 튜플 등)에 담겨 있으면 됨.
- join 함수 : 문자열들의 리스트(또는 튜플, 제너레이터 등 반복 가능한 객체)를 합칠 때 사용
- split : 문자열 > 리스트
- join : 리스트 > 문자열
my_list = ["Nice", "to", "meet", "you"] #공백으로 합치기 str1 =''.join(my_list) print(str1) # Nicetomeetyou #/로 합치기 str2 ='/'.join(my_list) # Nice/to/meet/you print(str2) #한칸 띄어쓰기로 합치기 str3 =' '.join(my_list) # Nice to meet you print(str3) #정수로 이뤄진 튜플 > 하나씩 꺼내서 > 문자로 바꾸고 > 합치기 #마지막으로 int로 바꾸기 my_tuple = (1, 2, 3, 4, 5) my_tuple = ''.join(str(x) for x in my_tuple) print(type(my_tuple)) print(int(my_tuple)) # map을 활용해 튜플안의 정수를 문자열 바꿀 수 있음. my_tuple = (1, 2, 3, 4, 5) my_tuple = ''.join(map(str, my_tuple)) #'12345' print(type(my_tuple)) print(int(my_tuple)) - cf 참고로 파이썬 a = 1, 2, 3이라고 하면 자동으로 튜플로 인식됨.(파이썬에서 , 자체가 튜플을 만드는 핵심 문법이기에 또한 메모리 활용에 보다 효율적이라서)
새롭게 알게 된 것
- 추상클래스
- 사용이유
- 모양(shape)이라는 개념은 공통적으로 .area()와 같은 메서드를 가지는데 모양마다 넓이 계산 방식이 다르니, 틀만 정해넣고 넓이 계산식을 직접 정의하도록 강제하고 싶을 때 추상 클래스를 활용하나.
- ABC
- 추상 클래스의 부모 클래스
- 내가 만들 클래스가 추상 클래스임을 명시하기 위해 필요
- class MyClass(ABC): 처럼 상속해서 사용한다.
- abstractmethond
- 서브클래스가 반드시 재정의 해야 할 매서드를 정의할 때 사용
- 이걸 써야 “자식 클래스야, 이 메서드는 꼭 만들어!”라고 강제할 수 있다.
- 사용이유
- 프로퍼티
- 정의
- 매서드를 속성처럼 사용할 수 있게 만든 것
- 코드
class Person: def __init__(sefl, birth_year): self.birth_year = birth_year @property #getter 값 가져오기 def age(self) return 2025 - self.birth_year @age.setter # setter 값 셋팅하기 def age(self, new_age): self.birth_year = 2025 - new_age joy = Person(2000) print(joy.age) #25 , age는 매서드이지만 속성값처럼 접근 가능 joy.age = 30 joy.brith_year = 1995 # joy.birth_year = 1995 # 이렇게 내부에 있는 변수를 직접 수정 -> 위험 / 우회해서 내부 변수에 접근할 수 있게- 특징
- 매서드를 속성처럼 사용할 수 있게 해주는 기능이다. obj.age() → obj.age
- 이를통해 getter, setter, deleter 기능을 구현할 수 있다.
- getter 매써드를 속성처럼 사용해서 값을 불러올 수 있다. print(obj.age) = 25
- setter 매서드를 속성처럼 사용해서 값을 넣을 수 있다. obj.age = 30
- 정의
특히 어려웠던 것
- 그냥 다 어렵다.
다음에 적용해 볼 것
- 판다스를 통한 전처리,, 차근차근 가즈아~!
'기타 > Python' 카테고리의 다른 글
| 250628_판다스(조회, 정렬, 조건필터, 통계, 복사와 결측치) (1) | 2025.06.30 |
|---|---|
| 250618_SQL변수선언 @hour / 파이썬 for if if (0) | 2025.06.18 |
| 250611,13_클래스 (0) | 2025.06.13 |
| 250610_파이썬 함수를 계속 파볼까요? (2) | 2025.06.10 |
| 250609_파이썬(정수→문자열→리스트) (0) | 2025.06.09 |