python 문법들

yo·2021년 1월 23일
0

알고리즘 문제를 풀며 새롭게 익힌(와닿은) 문법들을 기록한다.

1. lambda

평소 람다를 잘 사용하지 않다보니 이해도도 떨어졌다.
언젠간 공부해야지 하고 늘 미뤄뒀었다.
토요일 아침 눈이 일찍 떠져서 잠깐 알고리즘을 풀었는데,
내가 몇 줄에 걸쳐 푼 문제를 누가 람다를 사용해 단 한 줄로 풀어낸 걸 보고
충격 받아 당장 람다를 공부하게 됐다.

복잡한 코드 말고, 람다의 본질을 이해할 수 있는 쉬운 코드부터 시작해보자.

1. lambda x ,y : x+y

해석: x, y를 인자로 받아 그 둘을 더하는 람다 표현식이다.
lambda는 그 자체를 변수에 담아 사용할 수 있는 것이 장점이다.
예시:

minus = lambda x, y : x-y
print(minus(10,2))

결과는 8이 출력된다.

2. lambda in list

lambdas = [lambda x : x * 2, lambda x: x * 10]

print(lambdas[0](2))
print(lambdas[1](2))

리스트 안에 람다 두 개를 넣어줬다.
이를 꺼내서 사용할 수 있다.

결과는 4와 20이 출력된다.

3. 람다 표현식 자체 호출하기

람다를 변수에 할당하지 않고 바로 출력하게 하려면 괄호로 묶어주면 된다.

>>> (lambda x: x + 10)(2)
12

4. lamda와 변수

lamda표현식 안에서 변수를 만들 수 없다.
변수가 필요한 경우 함수(def)를 만드는 것이 좋다.
단, 람다 밖의 변수는 사용할 수 있다.

>>> y = 5
>>> (lambda x: x * y)(5)
25

5. map과 lambda 함께 사용하기

a = list(map(lambda x: x+10, [1,2,3]))

print(a)

결과값: [11, 12, 13]

6. 매개변수 없이 lambda 만들기

(lambda: 1)()
결과값 : 1

x = 10
(lambda : x)()

결과값: 10

2. count()함수

-count()는 str과 list에서 모두 사용 가능하다!

s = "aba"
l = ["a", "b", "ab"]

print(s.count('a'))
print(l.count("a"))

3. isalpha(), isdigit()

-isalpha는 주어진 str이 알파벳으로만 이루어져 있는지 True or False를 return한다.
-isdigit은 주어진 str이 숫자로만 이루어져 있는지 True or False를 return한다.

profile
Never stop asking why

0개의 댓글