Python lambda로 처리
소개
Python의 lambda 식을 자신이 잘 잊어 버리는 경향이 있으므로 메모로 남겨 둡니다.
다른 분의 참고도 된다고 생각합니다.間違っている箇所もあると思いますので, コメントしていただけると幸いです.
파이썬은 def ()로 함수를 정의하지만 lambda 표현식으로 익명 함수를 정의 할 수 있습니다.
def() 를 사용한 함수의 경우, 인수로서 직접 다른 함수에 건네줄 수 없고, 다른 장소에서 정의하고 나서 값을 건네줄 필요가 있는 것에 대해, lambda 식은 어디까지나 「식」으로 따라서 함수의 인수로 직접 전달할 수 있습니다! ! ! !
다음 섹션에서 예제를 소개합니다.
def 문과 lambda 식의 대응 관계
def add(x, y=1):
return x+y
print(add(1,2))
# 3
print(add(100))
# 101
위의 def 문을 lambda 식으로 변환하면
f = lambda x, y=1: x+y
print(f(1,2))
# 3
print(f(100))
# 101
しかしながら, 上記のようにlambda式を変数に代入している記法は, PEP8では非推奨となっているので
注意してください
lambda 식으로 if 문 처리
for문으로 하나하나 처리할 때, if문의 조건분기가 들어가는 경우라도 lambda식을 활용할 수 있습니다!
number_list = [1,2,3,4,5]
odd_number = []
for i in number_list:
if i % 2 == 0:
print(f"{i}は偶数である")
else:
print(f"{i}は奇数である")
odd_number.append(i)
print(odd_number)
# [1,3,5]
위의 for 문이 lambda 식을 사용하여 다시 작성된 경우
number_list = [1,2,3,4,5]
odd_number = filter(lambda i : i % 2 != 0, number_list)
print(list(odd_number))
# [1,3,5]
sorted 함수
목록을 정렬하는 내장 함수에는 인수 key가 있습니다.
key는 정렬 전에 목록의 각 요소에 적용되는 함수를 지정합니다.
a = [[0,7,4], [2,5,6], [7,4,2]]
b = sorted(a)
print(b)
# [[0,7,4], [2,5,6], [7,4,2]]
위의 sorted 함수에서 lambda 표현식을 사용하는 경우
a = [[0,7,4], [2,5,6], [7,4,2]]
b = sorted(a, key=lambda x: x[-1])
print(b)
# [[7, 4, 2], [0, 7, 4], [2, 5, 6]]
map 함수
목록의 각 요소에 대해 일정한 처리를 한 값을 사용하려면 map 함수를 적용합니다.
def doubler(x):
return x*2
L = [1, 2, 3, 4, 5, 6]
mod_list = map(doubler, L)
print(list(mod_list))
# [2, 4, 6, 8, 10, 12]
위의 map 함수에서 lambda 식을 활용한 경우
L = [1, 2, 3, 4, 5, 6]
doubler = map(lambda x: x*2, L)
print(list(doubler))
# [2, 4, 6, 8, 10, 12]
요약
이번에는 lambda에서의 처리에 대해 기사로했습니다.
틀린 부분이 있었을 경우는 코멘트 해 주시면 다행입니다.
앞으로도 파이썬 팁을 기사로하겠습니다
참고문헌
def add(x, y=1):
return x+y
print(add(1,2))
# 3
print(add(100))
# 101
위의 def 문을 lambda 식으로 변환하면
f = lambda x, y=1: x+y
print(f(1,2))
# 3
print(f(100))
# 101
しかしながら, 上記のようにlambda式を変数に代入している記法は, PEP8では非推奨となっているので
注意してください
lambda 식으로 if 문 처리
for문으로 하나하나 처리할 때, if문의 조건분기가 들어가는 경우라도 lambda식을 활용할 수 있습니다!
number_list = [1,2,3,4,5]
odd_number = []
for i in number_list:
if i % 2 == 0:
print(f"{i}は偶数である")
else:
print(f"{i}は奇数である")
odd_number.append(i)
print(odd_number)
# [1,3,5]
위의 for 문이 lambda 식을 사용하여 다시 작성된 경우
number_list = [1,2,3,4,5]
odd_number = filter(lambda i : i % 2 != 0, number_list)
print(list(odd_number))
# [1,3,5]
sorted 함수
목록을 정렬하는 내장 함수에는 인수 key가 있습니다.
key는 정렬 전에 목록의 각 요소에 적용되는 함수를 지정합니다.
a = [[0,7,4], [2,5,6], [7,4,2]]
b = sorted(a)
print(b)
# [[0,7,4], [2,5,6], [7,4,2]]
위의 sorted 함수에서 lambda 표현식을 사용하는 경우
a = [[0,7,4], [2,5,6], [7,4,2]]
b = sorted(a, key=lambda x: x[-1])
print(b)
# [[7, 4, 2], [0, 7, 4], [2, 5, 6]]
map 함수
목록의 각 요소에 대해 일정한 처리를 한 값을 사용하려면 map 함수를 적용합니다.
def doubler(x):
return x*2
L = [1, 2, 3, 4, 5, 6]
mod_list = map(doubler, L)
print(list(mod_list))
# [2, 4, 6, 8, 10, 12]
위의 map 함수에서 lambda 식을 활용한 경우
L = [1, 2, 3, 4, 5, 6]
doubler = map(lambda x: x*2, L)
print(list(doubler))
# [2, 4, 6, 8, 10, 12]
요약
이번에는 lambda에서의 처리에 대해 기사로했습니다.
틀린 부분이 있었을 경우는 코멘트 해 주시면 다행입니다.
앞으로도 파이썬 팁을 기사로하겠습니다
참고문헌
number_list = [1,2,3,4,5]
odd_number = []
for i in number_list:
if i % 2 == 0:
print(f"{i}は偶数である")
else:
print(f"{i}は奇数である")
odd_number.append(i)
print(odd_number)
# [1,3,5]
number_list = [1,2,3,4,5]
odd_number = filter(lambda i : i % 2 != 0, number_list)
print(list(odd_number))
# [1,3,5]
목록을 정렬하는 내장 함수에는 인수 key가 있습니다.
key는 정렬 전에 목록의 각 요소에 적용되는 함수를 지정합니다.
a = [[0,7,4], [2,5,6], [7,4,2]]
b = sorted(a)
print(b)
# [[0,7,4], [2,5,6], [7,4,2]]
위의 sorted 함수에서 lambda 표현식을 사용하는 경우
a = [[0,7,4], [2,5,6], [7,4,2]]
b = sorted(a, key=lambda x: x[-1])
print(b)
# [[7, 4, 2], [0, 7, 4], [2, 5, 6]]
map 함수
목록의 각 요소에 대해 일정한 처리를 한 값을 사용하려면 map 함수를 적용합니다.
def doubler(x):
return x*2
L = [1, 2, 3, 4, 5, 6]
mod_list = map(doubler, L)
print(list(mod_list))
# [2, 4, 6, 8, 10, 12]
위의 map 함수에서 lambda 식을 활용한 경우
L = [1, 2, 3, 4, 5, 6]
doubler = map(lambda x: x*2, L)
print(list(doubler))
# [2, 4, 6, 8, 10, 12]
요약
이번에는 lambda에서의 처리에 대해 기사로했습니다.
틀린 부분이 있었을 경우는 코멘트 해 주시면 다행입니다.
앞으로도 파이썬 팁을 기사로하겠습니다
참고문헌
def doubler(x):
return x*2
L = [1, 2, 3, 4, 5, 6]
mod_list = map(doubler, L)
print(list(mod_list))
# [2, 4, 6, 8, 10, 12]
L = [1, 2, 3, 4, 5, 6]
doubler = map(lambda x: x*2, L)
print(list(doubler))
# [2, 4, 6, 8, 10, 12]
이번에는 lambda에서의 처리에 대해 기사로했습니다.
틀린 부분이 있었을 경우는 코멘트 해 주시면 다행입니다.
앞으로도 파이썬 팁을 기사로하겠습니다
참고문헌
Reference
이 문제에 관하여(Python lambda로 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Shogo-dayo/items/9fffd1c668eee7b39cb2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)