[ASAC] 02-5. Python 기초 - 함수
함수
✅ 입/출력의 관계를 기능 중심으로 작성한 것
1️⃣ 기본 구조
def 함수이름(입력):
# 무엇을 할지 기술
return 출력
# 파이썬은 기본적으로 출력을 tuple로 묶어서 내보냄
- 두 정수를 더하는 함수를 만들어보자.
def sum2(a, b):
return a+b
2️⃣ 출력이 여러 개인 함수
- 함수는 입/출력이 여러 개일 수 있다.
def multiple2(a,b):
return a+b, a*b, a/b
# 출력은 튜플형태
# 아래처럼 출력 튜플에 접근하여 사용가능
print(multiple2(10,20)[1])
3️⃣ 입력이 가변적인 함수
# 가변적인 함수
# -> args를 이용하여 리스트처럼 사용 가능
def sumrandom( *args):
res=0
for i in args:
res+=i
return res
x=[10,20,30,40,50]
sum_ = sumrandom(*x)
print(sum_)
## return
# 150
함수는 한번 만든 후 재사용이 가능하기 때문에, 반복되는 작업이 있다면, 내가 원하는 대로 커스텀해서 코드의 효율을 높이자!
lambda 함수
✅ "함수가 그렇게 많이 사용되지 않을 것 같은데...?" 할 떄 쓰는 함수
→ 코딩테스트 최종 출력 등에서 중요하게 쓰이고, 코드 재활용은 불가능한 함수이다.
1️⃣ 기본 구조
(lambda 입력인자들 : 무엇을 할지 기술)
2️⃣ 실제로 어떻게 쓰이는지 보자.
(lambda a,b :a+b)(10,30)
## return
# 40
정렬 함수 sort, sorted
✅ 파이썬은 정렬을 해 주는 함수가 존재한다
1️⃣ sorted()
→ reverse = False : 오름차순 정렬(default) / True : 내림차순 정렬
⭐ sorted() 함수는 리스트의 "원본을 유지하고, 정렬된 새로운 리스트를 반환한다"
str_list = ["좋은하루", "good morning", "굿모닝","niceday"]
str_list
sorted(str_list) # --> 기본: 값 & 오름차순
# 컴퓨터의 코드값 기준으로 영어가 앞의 숫자,,,,(ASCII코드)
## return
# ['good morning', 'niceday', '굿모닝', '좋은하루']
sorted(str_list, reverse=True) # --> 옵션 : 값&내림차순
## return
# ['좋은하루', '굿모닝', 'niceday', 'good morning']
2️⃣ sort()
→ reverse = False : 오름차순 정렬(default) / True : 내림차순 정렬
⭐ sort() 함수는 리스트의 "내용을 직접 갱신하며, 새로운 리스트를 반환하지 않아 원본 유지가 어렵다"
str_list = ["좋은하루", "good morning", "굿모닝", "niceday"]
print("원본 리스트:", str_list)
# 값과 오름차순으로 정렬
str_list.sort()
print("오름차순 정렬:", str_list)
# 내림차순으로 정렬
str_list.sort(reverse=True)
print("내림차순 정렬:", str_list)
## return
# 원본 리스트: ['좋은하루', 'good morning', '굿모닝', 'niceday']
# 오름차순 정렬: ['good morning', 'niceday', '굿모닝', '좋은하루']
# 내림차순 정렬: ['좋은하루', '굿모닝', 'niceday', 'good morning']
3️⃣ lambda 함수와 정렬 함수가 같이 쓰이면?
- 아래와 같이 간단하게 쓸 수 있다. → 코테 출력용으로 많이 사용됨
sorted(str_list, key = lambda x: len(x), reverse=True)
## return
# ['good morning', 'niceday', '좋은하루', '굿모닝']
- 내림차순을 다른 형태로 적용하면? → ' 마이너스 기호 '를 사용하자!
score_list = [('a',0),('b',1),('c',5),('d',3),('e',4)]
sorted(score_list, key = lambda x:-x[1])
## return
# [('c', 5), ('e', 4), ('d', 3), ('b', 1), ('a', 0)]
# 조금 더 유사한 값들이 있는 조건 : 이름-성적
zumsu_list = [
("A",0), ("B",5), ("AA", 3),
("C",5), ("B",1), ("Z", 5),
("D",3), ("E",5)
]
zumsu_list
# 이름 순서대로 오름차순, 같으면 성적순
sorted(zumsu_list, key=lambda x:(x[0],-x[1]))
## return
# [('A', 0),
# ('AA', 3),
# ('B', 5),
# ('B', 1),
# ('C', 5),
# ('D', 3),
# ('E', 5),
# ('Z', 5)]
'대외활동 > [부트캠프] 빅데이터 분석가 과정' 카테고리의 다른 글
[SQL] 03-2. MySQL 알아보기 (cmd와 workbench) (0) | 2024.04.09 |
---|---|
[SQL] 03-1. SQL - 데이터베이스란? (0) | 2024.04.02 |
[Python] 02-4. Python 기초 - 리스트 컴프리헨션 (0) | 2024.04.01 |
[Python] 02-3. Python 기초 - 조건문과 반복문 (0) | 2024.04.01 |
[Python] 02-2. Python 기초 - 여러 가지 자료형 (2) | 2024.03.31 |