자주 사용 가능한 함수 설명입니다.
1. abs() ==> 절대값
print("1. 절대값:", abs(10), abs(-100)) # 1. 절대값: 10 100
2. sum() ==> 합계
print("2. 합계:", sum([10, 20, 30])) # 2. 합계: 60
3. sum() / len() ==> 평균
print("3. 평균:", sum([10, 20, 30]) / len([10, 20, 30])) # 3. 평균: 20.0
4. max() ==> 최댓값, (dict의 경우 key값의 최댓값)
print("4. 최대값:", max([10, 20, 30, 40])) # 4. 최대값: 40
5. min() ==> 최솟값, (dict의 경우 key값의 최솟값)
print("5. 최소값:", min([10, 20, 30, 50])) # 5. 최소값: 10
6. sorted() ==> dict 정렬, 원본값 변화 x, 새로운 변수에 저장
sorted_m_dict = sorted(m_dict)
print("8. dict 정렬:", sorted_m_dict) # 8. dict 정렬: [5, 10, 20]
7. round() ==> 반올림, 소숫점을 지정 안 하면 정수 표기
print("9. 반올림:", round(4.879)) # 5 # 소수점 지정 안 하면 정수로 표기
7. round(반올림할 수, 소숫점 자리) ==> 반올림, 소숫점 자리를 지정해줌
print("9. 반올림:", round(4.879, 2)) # 4.88 # 소수점 2자리로 표기
8. char() ==> 아스키코드에 해당되는 문자 반환
print("10. 아스키코드에 해당되는 문자 반환:", chr(65), chr(97)) # 10. 아스키코드에 해당되는 문자 반환: A a
9. ord() ==> 문자에 해당되는 아스키코드 반환
print("10. 문자에 해당되는 아스키코드 반환:", ord('A'), ord('a')) # 10. 문자에 해당되는 아스키코드 반환: 65 97
10. shuffle() ==> 문자를 랜덤한 순서로 섞어서 반환
# 2. shuffle 기능
x = ['a', 'b', 'c']
random.shuffle(x)
print(x) # ['b', 'c', 'a']
11. random() ==> 랜덤값 얻기
# 1. 랜덤값 얻기
import random
result = random.randrange(0, 3)
print(result) # 1
12. random.choice() ==> 임의값 추출
# 3. 임의값 추출
print(random.choice(x))
filter 함수 => 리스트에서 조건에 일치하는 값만 filtering해서 반환하는 함수
리스트의 값을 하나씩 함수에 대입하여 조건식을 만족하면 필터링 통과
문법(Syntax) : filter ( 함수객체(함수명), [ 리스트 ] ) ==> 시스템의 함수 호출 (콜백 함수 호출 형태)
map 함수 => 리스트에서 특정 함수를 적용해서 반환하는 함수
문법(Syntax) : result = map( 함수명, 리스트 ) ==> 시스템의 함수 호출 (콜백 함수 호출 형태)
"""
1) filter 함수
==> 리스트에서 조건에 일치하는 값만 필터링해서 반환하는 함수 # 리스트의 값을 하나씩 함수에 넣어서 조건식을 만족하면 필터링 통과
문법(Syntax) :
fliter( 함수객체(함수명) , [ 리스트 ] ) ==> 시스템의 함수 호출 ( 콜백 함수 호출 형태)
## (error,X) filter ( 함수(), [리스트] ) ==> filter 함수를 사용하면서 우리가 함수를 호출함. X
2) map 함수
==> 리스트에서 특정 함수를 적용해서 반환하는 함수
문법(Syntax) :
result = map( 함수명, 리스트 ) ==> 시스템의 함수 호출 ( 콜백 함수 호출 형태)
"""
1. filter 함수
# 가. 일반 함수 이용
def even_num(n): # 짝수인지 아닌지 bool값으로 넘겨주는 함수
return n % 2 == 0
result = list(filter(even_num, range(1, 11))) # 1 ~ 10의 리스트에서 짝수 함수를 이용해 짝수만 필터링
# result = tuple(filter(even_num, range(1, 11))) #그냥 형변환 한 거
# result = set(filter(even_num, range(1, 11)))
print("가. filter 함수(일반함수 이용) :", result) # 가. filter 함수(일반함수 이용) : [2, 4, 6, 8, 10]
# 나. 람다 함수 이용
even_num2 = lambda n : n % 2 == 0
result = list(filter(even_num2, range(1, 11))) # 람다 함수를 변수에 넣은 방법
result = list(filter(lambda n : n % 2 == 0, range(1, 11))) # 권장 방법 = 람다 함수를 바로 쓰는 방법
print("나. filter 함수(람다함수 이용) :", result) # 나. filter 함수(람다함수 이용) : [2, 4, 6, 8, 10]
print("")
# 질문 1
"""
다음과 같이 제공된 리스트에서 알파벳만 반환하는 코드를 작성하시오.
"""
m = "asdf123aeAbdec4333"
# 가. 일반함수 이용
def alpha1 (n):
return n.isalpha()
result = list(filter(alpha1, m))
print("질문 답(일반 함수 이용):", result) # 질문 답(일반 함수 이용): ['a', 's', 'd', 'f', 'a', 'e', 'A', 'b', 'd', 'e', 'c']
print("join함수를 이용해서 문자열로 변환:", "".join(result)) # join함수를 이용해서 문자열로 변환: asdfaeAbdec
# 나. 람다함수 이용
result = list(filter(lambda n : n.isalpha(), m))
print("질문 답(람다 함수 이용):", result) # 질문 답(람다 함수 이용): ['a', 's', 'd', 'f', 'a', 'e', 'A', 'b', 'd', 'e', 'c']
print("join함수를 이용해서 문자열로 변환:", "".join(result)) # join함수를 이용해서 문자열로 변환: asdfaeAbdec
2. map 함수
def upper_case1(m):
return m.upper()
result = list(map(upper_case1, ['abC', 'Eva', 'Hello']))
print("가. 대문자 적용(일반 함수 사용):", result) # 가. 대문자 적용(일반 함수 사용): ['ABC', 'EVA', 'HELLO']
result = list(map(lambda n : n.upper(), ['abC', 'Eva', 'Hello']))
print("나. 대문자 적용(람다 함수 사용):", result) # 나. 대문자 적용(람다 함수 사용): ['ABC', 'EVA', 'HELLO']
# 질문 2
"""
다음과 같은 정수형의 문자열 리스트를 모두 정수로 변환하여 출력하시오.
"""
# def tran_int(m): # 사용자 정의 함수 없이 그냥 int()로 해도 됐다. 하하하.
# return int(m)
#
# result = list(map(tran_int, ["12", "44", "55"]))
result = list(map(int, ["12", "44", "55"])) #*****
print("다. 일반 함수로 정수 변환 적용:", result) # 다. 일반 함수로 정수 변환 적용: [12, 44, 55]
result = list(map(lambda n : int(n), ["12", "44", "55"])) # 이 상황에는 람다 함수도 필요가 없다. 이미 패키지에 함수가 있으니까.
print("라. 람다 함수로 정수 변환 적용:", result) # 라. 람다 함수로 정수 변환 적용: [12, 44, 55]
# 질문 3
"""
다음과 같은 정수형의 정수형 리스트를 모두 문자열로 변환하여 출력하시오.
"""
result = list(map(str, [9, 8, 7, 10])) #*****
print("마. 일반 패키지 함수로 문자열 변환 적용:", result) # 마. 일반 패키지 함수로 문자열 변환 적용: ['9', '8', '7', '10']
# 질문 4
"""
다음과 같은 문자열 리스트에서 문자열의 길이를 변환하여 출력하시오.
"""
result = list(map(len, ["홍길동", "세종대왕", "광개토대왕"]))
print("사. 일반 패키지 함수로 문자열 길이 변환 적용:", result) # 사. 일반 패키지 함수로 문자열 길이 변환 적용: [3, 4, 5]
any() : 집합형의 데이터 중에서 일부분의 데이터가 True인 값을 가지고 있는지 확인
all() : 집합형의 모든 데이터가 True인 값을 가지고 있는지 확인
print("13. all 1, 모든 데이터가 True 인가요?:", all([True, False, True]))
# 13. all 1, 모든 데이터가 True 인가요?: False
print("13. all 2, 모든 데이터가 True 인가요?:", all(["aa", 10, [1, 23]]))
# 13. all 2, 모든 데이터가 True 인가요?: True
print("14. any, 데이터 중 True 값이 1개라도 있나요?:", all([True, False, True]))
# 14. any, 데이터 중 True 값이 1개라도 있나요?: False
#질문 : 다음 제공된 리스트 값이 모두 10보다 작은가?
list_data = [1, 43, 5, 7, 3, 6]
result = all([ n < 10 for n in list_data])
print("다음 제공된 리스트 값이 모두 10보다 작은가?>", result )
# 다음 제공된 리스트 값이 모두 10보다 작은가?> False
# 질문 : 다음 제공된 리스트 값 중에서 3보다 작은 값이 있는가?
list_data = [1, 3, 5, 2, 76]
result = [n for n in list_data if n < 3] ## list comprehension 다시 봐야할 듯?!
print(result)
# [1, 2]
print("다음 제공된 리스트 값들은 모두 3보다 작은가?>", all(result) )
# 다음 제공된 리스트 값들은 모두 3보다 작은가?> True
result = [ n <= 3 for n in list_data]
print(result) # [True, True, False, True, False]
result = any([ n <= 3 for n in list_data])
print("다음 제공된 리스트 값 중에서 3보다 작은 값이 있는가?>", result )
# 다음 제공된 리스트 값 중에서 3보다 작은 값이 있는가?> True
파이썬을 사용하면서 자주 사용하게되는 함수 정리입니다.
자주 사용될 예정이니 이 정도는 외워놓는 것이 좋을 것 같습니다.
그럼 이만~
'SK 행복성장캠퍼스 > Python 기초' 카테고리의 다른 글
0904_5일차_연습문제 (0) | 2020.09.07 |
---|---|
0904_5일차_함수_클래스 (0) | 2020.09.07 |
0904_5일차_함수_람다함수 (0) | 2020.09.07 |
0903_4일차_연습문제 (0) | 2020.09.06 |
0903_4일차_함수_일급객체 (0) | 2020.09.06 |
댓글