map(function, list)
list를 돌면서 fuction에 삽입
ex)
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
def check_adult(person):
return ('adult' if person['age'] > 20 else 'adol')
#map : people을 돌면서 check_adult에 대입
result = map(check_adult, people)
print(list(result))
결과
['adol', 'adult', 'adol', 'adol', 'adult', 'adult', 'adult', 'adult']
짧은 함수 간단하게 나타내기
map과 마찬가지로 리스트를 차례대로 함수에 집어넣는다
lambda function : 함수 내용, list
ex)
#lambda : 한 줄짜리 함수면 lambda 이용해도 됨
result = map(lambda person:('adult' if person['age'] > 20 else 'adol'), people)
print(list(result))
결과
['adol', 'adult', 'adol', 'adol', 'adult', 'adult', 'adult', 'adult']
true 인 것만 걸러 return
ex)
#filter : true 인 것만 - 20살 이상인 애들만 출력
result = filter(lambda person : person['age'] > 20, people)
print(list(result))
결과
python3 hello.py
[{'name': 'carry', 'age': 38}, {'name': 'ben', 'age': 27}, {'name': 'bobby', 'age': 57}, {'name': 'red', 'age': 32}, {'name': 'queen', 'age': 25}]
함수를 정의할 때 디폴트값을 넣어주면 매개변수를 넣어주지 않을 시 디폴트값으로 계산
(*args) : 변수를 무제한으로 넣을 수 있다
(kwargs) : 변수를 딕셔너리 형태로 변환해준다**
객체를 자체적으로 관리하기 위해서 - 효율적, 직관적
ex)
class monster():
hp = 100
alive = True
def damage(self, attack):
self.hp = self.hp - attack
if self.hp < 0:
self.alive = False
def status_check(self):
if self.alive == True:
print('alive')
else:
print('dead')
#인스턴스
m1 = monster()
m1.damage(150)
m1.status_check()
m2 = monster()
m2.damage(89)
m2.status_check()
m1과 m2를 moster클래스의 인스턴스 라고 한다.