Python 심화 문법

·2023년 8월 14일
0

파이썬

목록 보기
1/18

map

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']

lambda

짧은 함수 간단하게 나타내기
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']

filter

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) : 변수를 딕셔너리 형태로 변환해준다**

Class

클래스를 왜 사용하는가?

객체를 자체적으로 관리하기 위해서 - 효율적, 직관적

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클래스의 인스턴스 라고 한다.

profile
공부 중

0개의 댓글