1677915551
Python에서 함수를 정의하고 호출하는 방법을 알아봅니다. Python에서 함수를 정의하고 호출하는 것은 코드의 기능과 가독성을 크게 향상시킬 수 있는 간단한 프로세스입니다.
Python은 개발자에게 다양한 기능을 제공하는 강력하고 다재다능한 프로그래밍 언어입니다.
Python의 가장 중요한 기능 중 하나는 함수를 정의하고 호출하는 기능입니다.
함수는 특정 작업을 수행하는 코드 블록입니다. Python에서는 함수를 정의하고 호출하는 것이 쉽고 코드의 가독성과 재사용성을 크게 향상시킬 수 있습니다.
파이썬에서 함수를 정의하는 것은 함수를 정의하고 인수를 지정하는 두 가지 주요 단계를 포함합니다.
함수를 정의하려면 def 키워드 뒤에 함수 이름과 괄호()를 사용합니다. 함수가 인수를 사용하는 경우 인수는 괄호 안에 포함됩니다. 함수의 코드 블록은 콜론 다음에 들여쓰기됩니다.
예를 들면 다음과 같습니다.
def greet(name):
print("Hello, " + name + "! How are you?")
greet이 예제에서는 라는 하나의 인수를 사용하는 라는 함수를 정의합니다 name. 그런 다음 이 함수는 name 인수가 포함된 인사말 메시지를 콘솔에 출력합니다.
함수를 정의하면 코드에서 필요한 만큼 여러 번 호출할 수 있습니다.
Python에서 함수를 호출하려면 함수 이름 뒤에 괄호()를 입력하기만 하면 됩니다. 함수가 인수를 사용하는 경우 인수는 괄호 안에 포함됩니다.
예를 들면 다음과 같습니다.
greet("John")
이 예제에서는 "John" 인수를 사용하여 greeting 함수를 호출합니다. 콘솔에 대한 출력은 다음과 같습니다.
Hello, John! How are you?
다음은 welcome 함수를 정의하고 호출하는 전체 코드 예제입니다.
def greet(name):
print("Hello, " + name + "! How are you?")
greet("John")
이 코드를 실행하면 콘솔에 다음이 출력됩니다.
Hello, John! How are you?
Python에서 함수를 정의하고 호출하는 고급 예제를 살펴보겠습니다.
정수 목록을 받아서 원래 목록에 있는 모든 짝수를 포함하는 새 목록을 반환하는 함수를 작성하고 싶다고 가정해 보겠습니다. 이 함수를 정의하고 호출하는 방법은 다음과 같습니다.
def get_even_numbers(numbers):
even_numbers = []
for number in numbers:
if number % 2 == 0:
even_numbers.append(number)
return even_numbers
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = get_even_numbers(numbers)
print(even_numbers)
이 예에서는 숫자라는 하나의 인수를 사용하는 get_even_numbers라는 함수를 정의합니다. 그런 다음 이 함수는 even_numbers라는 빈 목록을 만들고 숫자 목록의 각 숫자를 반복합니다.
숫자가 짝수이면 append 메소드를 사용하여 even_numbers 목록에 추가됩니다. 마지막으로 이 함수는 even_numbers 목록을 반환합니다.
이 함수를 호출하기 위해 먼저 값이 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]인 숫자라는 숫자 목록을 만듭니다. 그런 다음 숫자 목록을 인수로 사용하여 get_even_numbers 함수를 호출하고 반환된 값을 even_numbers라는 새 목록에 할당합니다.
마지막으로 even_numbers 목록을 콘솔에 출력합니다.
이 코드를 실행하면 콘솔에 다음이 출력됩니다.
[2, 4, 6, 8, 10]
이것은 원래 숫자 목록의 짝수 목록입니다.
이 예제는 특정 작업을 수행하는 더 복잡한 함수를 정의하는 방법과 적절한 인수를 사용하여 해당 함수를 호출하는 방법을 보여줍니다.
복잡한 작업을 더 작고 재사용 가능한 함수로 나누면 코드를 더 읽기 쉽고 유지 관리가 가능하며 효율적으로 만들 수 있습니다.
Python에서 함수를 정의하고 호출하는 것은 코드의 기능과 가독성을 크게 향상시킬 수 있는 간단한 프로세스입니다.
Python의 간단한 구문과 강력한 기능을 사용하여 원하는 수의 인수로 함수를 정의 및 호출하고 함수 코드 블록 내에서 원하는 수의 작업을 수행할 수 있습니다.
따라서 Python 코드에서 함수를 정의하고 호출하여 프로그래밍 기술을 다음 단계로 끌어올리십시오.
#python
1677915551
Python에서 함수를 정의하고 호출하는 방법을 알아봅니다. Python에서 함수를 정의하고 호출하는 것은 코드의 기능과 가독성을 크게 향상시킬 수 있는 간단한 프로세스입니다.
Python은 개발자에게 다양한 기능을 제공하는 강력하고 다재다능한 프로그래밍 언어입니다.
Python의 가장 중요한 기능 중 하나는 함수를 정의하고 호출하는 기능입니다.
함수는 특정 작업을 수행하는 코드 블록입니다. Python에서는 함수를 정의하고 호출하는 것이 쉽고 코드의 가독성과 재사용성을 크게 향상시킬 수 있습니다.
파이썬에서 함수를 정의하는 것은 함수를 정의하고 인수를 지정하는 두 가지 주요 단계를 포함합니다.
함수를 정의하려면 def 키워드 뒤에 함수 이름과 괄호()를 사용합니다. 함수가 인수를 사용하는 경우 인수는 괄호 안에 포함됩니다. 함수의 코드 블록은 콜론 다음에 들여쓰기됩니다.
예를 들면 다음과 같습니다.
def greet(name):
print("Hello, " + name + "! How are you?")
greet이 예제에서는 라는 하나의 인수를 사용하는 라는 함수를 정의합니다 name. 그런 다음 이 함수는 name 인수가 포함된 인사말 메시지를 콘솔에 출력합니다.
함수를 정의하면 코드에서 필요한 만큼 여러 번 호출할 수 있습니다.
Python에서 함수를 호출하려면 함수 이름 뒤에 괄호()를 입력하기만 하면 됩니다. 함수가 인수를 사용하는 경우 인수는 괄호 안에 포함됩니다.
예를 들면 다음과 같습니다.
greet("John")
이 예제에서는 "John" 인수를 사용하여 greeting 함수를 호출합니다. 콘솔에 대한 출력은 다음과 같습니다.
Hello, John! How are you?
다음은 welcome 함수를 정의하고 호출하는 전체 코드 예제입니다.
def greet(name):
print("Hello, " + name + "! How are you?")
greet("John")
이 코드를 실행하면 콘솔에 다음이 출력됩니다.
Hello, John! How are you?
Python에서 함수를 정의하고 호출하는 고급 예제를 살펴보겠습니다.
정수 목록을 받아서 원래 목록에 있는 모든 짝수를 포함하는 새 목록을 반환하는 함수를 작성하고 싶다고 가정해 보겠습니다. 이 함수를 정의하고 호출하는 방법은 다음과 같습니다.
def get_even_numbers(numbers):
even_numbers = []
for number in numbers:
if number % 2 == 0:
even_numbers.append(number)
return even_numbers
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = get_even_numbers(numbers)
print(even_numbers)
이 예에서는 숫자라는 하나의 인수를 사용하는 get_even_numbers라는 함수를 정의합니다. 그런 다음 이 함수는 even_numbers라는 빈 목록을 만들고 숫자 목록의 각 숫자를 반복합니다.
숫자가 짝수이면 append 메소드를 사용하여 even_numbers 목록에 추가됩니다. 마지막으로 이 함수는 even_numbers 목록을 반환합니다.
이 함수를 호출하기 위해 먼저 값이 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]인 숫자라는 숫자 목록을 만듭니다. 그런 다음 숫자 목록을 인수로 사용하여 get_even_numbers 함수를 호출하고 반환된 값을 even_numbers라는 새 목록에 할당합니다.
마지막으로 even_numbers 목록을 콘솔에 출력합니다.
이 코드를 실행하면 콘솔에 다음이 출력됩니다.
[2, 4, 6, 8, 10]
이것은 원래 숫자 목록의 짝수 목록입니다.
이 예제는 특정 작업을 수행하는 더 복잡한 함수를 정의하는 방법과 적절한 인수를 사용하여 해당 함수를 호출하는 방법을 보여줍니다.
복잡한 작업을 더 작고 재사용 가능한 함수로 나누면 코드를 더 읽기 쉽고 유지 관리가 가능하며 효율적으로 만들 수 있습니다.
Python에서 함수를 정의하고 호출하는 것은 코드의 기능과 가독성을 크게 향상시킬 수 있는 간단한 프로세스입니다.
Python의 간단한 구문과 강력한 기능을 사용하여 원하는 수의 인수로 함수를 정의 및 호출하고 함수 코드 블록 내에서 원하는 수의 작업을 수행할 수 있습니다.
따라서 Python 코드에서 함수를 정의하고 호출하여 프로그래밍 기술을 다음 단계로 끌어올리십시오.
#python
1677213840
Python에서 익명 함수를 만들고 사용하는 방법을 알아봅니다. 파이썬에서는 람다 함수라고도 합니다. Python에서 람다 함수와 일반 함수의 차이점과 람다 함수를 사용해야 하는 경우.
프로그래밍에서 함수를 사용하여 필요할 때 호출할 수 있는 코드 조각을 저장할 수 있습니다. 이렇게 하면 해당 코드가 필요할 때마다 동일한 논리를 다시 입력하는 것을 방지할 수 있습니다.
이 기사에서는 Python에서 익명 함수를 만들고 사용하는 방법을 배웁니다. 람다 함수라고도 합니다.
파이썬에서 일반 함수가 생성되는 방법에 대한 간략한 개요부터 시작하겠습니다. 그런 다음 Python에서 익명 함수의 구문과 실용적인 응용 프로그램을 배웁니다.
또한 Python에서 람다 함수와 일반 함수의 차이점과 람다 함수를 사용하는 경우도 확인할 수 있습니다.
함수는 특정 로직이 여러 번 필요할 때 바퀴를 재발명하는 것을 방지합니다.
아래 코드를 고려하십시오.
first_addition = 2+3
print(first_addition) # 5
second_addition = 3+5
print(second_addition) # 8
우리는 다른 변수에서 더하기 위한 논리를 여러 번 다시 만들어야 했습니다. 이 작업을 백 번 수행해야 한다고 상상해 보십시오.
함수를 사용하면 논리를 한 번 만들고 원하는 만큼 재사용할 수 있습니다. 다음은 Python의 예입니다.
def add_numbers(a,b): return a + b
print(add_numbers(2,3)) # 5
print(add_numbers(3,5)) # 8
print(add_numbers(5,7)) # 12
키워드를 사용하여 def라는 함수를 만들었습니다 add_numbers(a,b). 두 개의 매개변수를 취합니다 – a및 b. a이 함수는 및 의 합계를 반환합니다 b.
따라서 논리를 여러 번 사용하려면 함수를 호출하고 다른 작업에 대해 다른 매개 변수를 전달하기만 하면 됩니다.
print(add_numbers(2,3)) # 5
print(add_numbers(3,5)) # 8
print(add_numbers(5,7)) # 12
이제 Python의 익명/람다 함수를 살펴보겠습니다.
Python의 익명 함수는 이름이 없는 함수입니다. 즉시 호출하거나 변수에 저장할 수 있습니다.
Python의 익명 함수는 람다 함수라고도 합니다.
Python에서 람다 함수를 만드는 구문은 다음과 같습니다.
lambda parameter(s) : expression
위의 구문에서 볼 수 있듯이 람다 함수를 정의하는 세 가지 값이 있습니다.
매개변수와 표현식은 콜론으로 구분됩니다.
예를 들면 다음과 같습니다.
add_numbers = lambda a,b : a + b
print(add_numbers(2,3)) # 5
위의 코드에서 두 개의 매개변수 a및 를 사용하여 람다 함수를 만들었습니다 b. 이 함수는 매개변수의 합계를 반환합니다.
그건:lambda a,b : a + b
함수에는 이름이 없습니다. add_numbers변수를 통해 함수를 쉽게 호출할 수 있도록 람다 함수를 라는 변수에 할당했습니다 .
변수에 람다 함수를 할당하지 않으면 다음과 같은 결과가 나타납니다.
print(lambda a,b : a + b)
# <function <lambda> at 0x7f757922fb00>
위의 코드는 단순히 콘솔에서 람다 객체를 반환합니다.
괄호를 사용하여 람다 함수를 즉시 호출할 수 있습니다.
(lambda a,b : a + b)(2,3)
위의 코드가 인쇄되면 5가 반환됩니다.
Python에서 람다 함수와 일반 함수의 몇 가지 차이점은 다음과 같습니다.
람다 함수 | 일반 기능 |
---|---|
lambda 키워드를 사용하여 정의 | def 키워드를 사용하여 정의 |
한 줄로 작성 가능 | 한 줄 이상의 코드가 필요합니다. |
반환 명세서가 필요하지 않음 | 값을 반환할 때 반환 문을 정의해야 합니다. |
익명으로 사용 가능 | 일반 함수에는 이름을 지정해야 합니다. |
일반 함수와 람다 함수를 모두 사용하여 동일한 결과를 얻을 수 있지만 다음은 람다 함수를 선택할 수 있는 몇 가지 이유입니다.
우선 한번만 사용할 함수가 필요할 때 람다 함수를 사용할 수 있습니다. 이것은 map, reduce, 와 같은 함수로 작업할 때 특히 유용합니다 filter. 아래 코드를 고려하십시오.
def double_number(n):
return n + n
numbers = [1, 3, 5, 7, 9]
double_result = map(double_number, numbers)
print(list(double_result))
# [2, 6, 10, 14, 18]
위의 코드에서 double_number숫자 값을 두 배로 만드는 일반 함수를 만들었습니다.
map함수가 — 함수 에 매개변수로 전달되었지만 map(double_number, numbers), 우리는 그것을 사용하기 전에 논리를 작성해야 했습니다.
람다 함수를 사용하면 다음과 같이 할 수 있습니다.
numbers = [1, 3, 5, 7, 9]
double_result = map(lambda x : x+x, numbers)
print(list(double_result))
# [2, 6, 10, 14, 18]
위에서 볼 수 있듯이 람다 함수 — —를 함수 lambda x : x+x의 매개변수로 전달했습니다 .mapmap(lambda x : x+x, numbers)
더 적은 수의 코드로 동일한 결과를 얻을 수 있었습니다. 사용하기 전에 먼저 함수를 정의할 필요가 없었습니다.
즉시 호출해야 하는 함수가 필요할 때 람다 함수를 사용할 수도 있습니다. 이전 시점의 예제에서 볼 수 있듯이 일반 함수를 사용하기 전에 먼저 정의했습니다. Lambda 함수는 생성 후 즉시 호출할 수 있습니다.
마지막으로 람다는 함수 내에서 함수를 사용하려는 경우에 유용합니다. 또는 함수를 반환하는 함수를 만들고 싶을 때.
이 기사에서는 Python의 람다 함수에 대해 이야기했습니다. 이름이 없는 함수가 있으며 한 줄의 코드로 실행할 수 있습니다.
몇 가지 예제를 통해 Python에서 일반 함수를 사용하는 방법을 살펴보았습니다.
그런 다음 람다 함수를 사용하는 구문과 실용적인 예를 보았습니다.
마지막으로 Python에서 람다 함수와 일반 함수의 차이점과 람다 함수를 사용해야 하는 경우에 대해 이야기했습니다.
즐거운 코딩하세요!
#python
1679122108
목차:
Python의 내장 range()함수는 루프로 작업할 때 주로 사용됩니다 for. 이 함수를 사용하여 특정 코드 블록을 지정된 횟수만큼 반복할 수 있습니다.
이 range()함수는 세 개의 인수를 허용합니다. 하나는 필수이고 두 개는 선택 사항입니다.
기본적으로 함수 구문은 range()다음과 유사합니다.
인수 stop가 필요합니다 .
이 함수는 에서 시작하여 로 증가 하고 지정한 값에서 끝나는 range()일련의 숫자를 반환합니다 (포함되지 않음).01stop
그러나 지정한 두 숫자 범위를 반복하고 에서 계산을 시작하지 않으려면 어떻게 해야 합니까 0?
두 번째 선택적 시작 인수인 를 전달하여 start시작 번호를 지정할 수 있습니다 . 이렇게 하는 구문은 다음과 같습니다.
range(start, stop`)
start이 구문은 로 증가하는 (포함) 및 stop(비포함) 값을 기반으로 일련의 숫자를 생성합니다 1.
마지막으로 기본 증분이 가 되지 않도록 하려면 세 번째 선택적 인수인 를 1지정할 수 있습니다 . 이를 수행하는 구문은 다음과 같습니다.step
range(start, stop, step)
start이 구문은 (포함)에서 계산을 시작하고 step도달할 때까지 증가하는 stop(비포함) 일련의 숫자를 생성합니다 .
stop와 함께 인수 만 사용하는 경우 range()계산은 에서 시작하여 0에서 증가합니다 1. 로 지정한 값에 도달하면 계산이 중지됩니다 stop.
stop지정하는 값은 포괄적이지 않다는 점에 유의하십시오 !
stop의 인수를 지정하면 5범위에 숫자가 포함되고 포함 0 - 4되지 않습니다 0 - 5. 계산은 에서 중지되고 에서 중지 4됩니다 5.
아래 예를 살펴보겠습니다.
for num in range(5):
print(num)
# output
# 0
# 1
# 2
# 3
# 4
이 예에서는 를 지정했습니다 range(5).
함수는 에서 카운트를 시작하여 각 반복 0에서 씩 증가 1하고 에서 종료됩니다 4.
두 숫자의 범위를 갖고 싶다면 두 개의 인수를 사용합니다 – start및 stop. start값은 포괄적이지만 값은 그렇지 않다는 점 을 명심하십시오 stop.
5 포함에서 10 포함까지의 값 범위를 원하는 경우 range(5,11)다음과 같이 작성합니다.
for num in range(5,11):
print(num)
# output
# 5
# 6
# 7
# 8
# 9
# 10
다음에도 음의 정수 값을 전달할 수 있습니다 range().
for num in range(-5, 1):
print(num)
# output
# -5
# -4
# -3
# -2
# -1
# 0
여기서 주의할 점은 float 값을 에 전달할 수 없다는 것입니다 range().
이 예에서 두 개의 float 값을 인수로 전달하면 오류가 발생합니다.
for num in range(5.2, 4.3):
print(num)
# output
# Traceback (most recent call last):
# File "main.py", line 1, in <module>
# for num in range(5.2, 4.3):
# TypeError: 'float' object cannot be interpreted as an integer
음수 또는 양수 정수를 start및 stop인수로 전달할 수 있습니다.
기본적으로 증분 값은 이고 1지정되지 않습니다. 즉, 함수 step에 인수를 전달하여 변경할 수 있습니다 range().
다음 예를 살펴보겠습니다.
for num in range(10,21,2):
print(num)
# output
# 10
# 12
# 14
# 16
# 18
# 20
10위의 예에서 에서 까지 일련의 숫자를 생성 20하고 단계를 로 증가시켰습니다 2. 단계 값을 2.
주의할 점은 step음수 또는 양수가 될 수 있지만 가 될 수는 없다는 것입니다 0.
음수 인수로 범위를 생성하는 방법은 다음과 같습니다 step.
for num in range(20, 11, -2):
print(num)
# output
# 20
# 18
# 16
# 14
# 12
위의 코드는 역순으로 일련의 숫자를 생성합니다.
step다음 일 때 어떤 일이 발생하는지 살펴보십시오 0.
for num in range(10, 21 0):
print(num)
# output
# File "main.py", line 1
# for num in range(10, 21 0):
^
# SyntaxError: invalid syntax
다음과 같이 range()함수를 생성자에 인수로 전달하여 숫자 목록을 만들 수 있습니다 .list()
my_numbers_list = list(range(5))
print(my_numbers_list)
# output
# [0, 1, 2, 3, 4]
위의 예에서 에서 0까지 의 숫자 목록을 만들었습니다 4.
항목 목록이 있고 목록의 길이에 따라 항목에 대해 작업을 수행하려고 한다고 가정합니다.
이를 위해 range()목록의 길이를 함수의 인수로 사용하고 전달할 수 있습니다.
목록의 길이를 계산하려면 len()함수를 사용하십시오.
programming_languages = ["Python", "JavaScript", "Java", "C++"]
programming_languages_length = len(programming_languages)
for languages in range(programming_languages_length):
print("Hello World")
# output
# Hello World
# Hello World
# Hello World
# Hello World
그리고 당신은 그것을 가지고 있습니다! range()이제 Python에서 함수를 사용하는 방법을 알게 되었습니다 .
읽어 주셔서 감사합니다. 즐거운 코딩하세요!
#python
1677493440
Python에서 람다 함수의 기본 사항(정의, 목적, 구문, 다양한 예제에서 기본 및 고급 사용법)을 배웁니다.
익명 함수라고도 하는 Lambda 함수는 Python에서 한 번만 사용할 수 있는 작은 함수입니다.
lambda키워드 다음에 함수의 입력, 콜론 및 함수 표현식을 사용하여 정의할 수 있습니다 . 람다 함수의 출력은 return 문이 아니라 표현식의 결과로 반환됩니다.
람다 함수의 주요 목적은 프로그램의 다른 부분에서 사용할 수 있는 작고 버려지는 함수를 생성할 수 있도록 하는 것입니다. 예를 들어 간단한 함수를 다른 함수의 인수로 전달해야 하는 경우에 유용할 수 있습니다.
Python에서 람다 함수를 만드는 구문은 다음과 같습니다.
lambda arguments: expression
키워드 를 사용하여 정의된 명명된 함수와 비교할 때 def람다 함수에는 몇 가지 중요한 차이점이 있습니다.
명명된 함수는 여러 식을 가질 수 있으며 반환 문을 사용합니다. Lambda 함수는 하나의 표현식만 가질 수 있으며 해당 표현식의 값은 자동으로 반환됩니다.
명명된 함수는 프로그램 전체에서 재사용할 수도 있지만 람다 함수는 한 번만 사용됩니다.
def greet(name):
return "Hello " + name
print(greet("John"))
# Output: "Hello John"
보시다시피 이름이 지정된 함수는 키워드를 사용하여 정의되며 def그 뒤에 함수 이름과 입력이 괄호 안에 표시됩니다. 함수 본문은 들여쓰기되고 return 문은 식의 결과를 반환하는 데 사용됩니다.
명명된 함수는 여러 번 호출할 수 있으므로 복잡한 작업에 대해 람다 함수보다 더 유연합니다.
다음은 키워드로 정의된 명명된 함수를 사용하는 동등한 코드입니다 lambda.
greet = lambda name: "Hello " + name
print(greet("John"))
# Output: "Hello John"
이 섹션에서는 구문을 포함하여 람다 함수를 만들고 사용하는 방법과 맵, 필터 및 축소와 같은 고차 함수에서 인수로 사용하는 방법에 대한 기본 사항을 다룹니다.
또한 이 섹션에서는 정렬 및 목록 내포에서 람다 함수를 사용하는 방법을 살펴봅니다. 마지막으로 람다 함수의 기본 사용법에 대한 기본적인 이해가 있어야 합니다.
map람다 함수는 , filter및 와 같은 고차 함수에서 인수로 자주 사용됩니다 reduce. 이 함수를 사용하면 목록 또는 기타 반복 가능 항목의 모든 요소에 주어진 연산을 적용할 수 있습니다.
다음은 함수와 함께 람다 함수를 사용하는 예입니다 map.
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers)
# Output: [1, 4, 9, 16, 25]
이 예에서 람다 함수는 하나의 입력을 받아 x해당 값의 제곱을 반환합니다. 함수 map는 이 작업을 목록의 모든 요소에 적용하고 numbers결과와 함께 새 목록을 반환합니다.
다음은 함수를 사용하는 또 다른 예입니다 filter.
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)
# Output: [2, 4]
이 예제에서 람다 함수는 하나의 입력을 받아 짝수이면 반환 x하고 그렇지 않으면 반환합니다. 이 함수는 목록의 모든 요소에 이 작업을 적용 하고 반환된 요소만 있는 새 목록을 반환합니다 .TruexFalsefilternumbersTrue
람다 함수를 사용하여 함수를 값으로 반환할 수도 있습니다. 예를 들어:
def make_adder(x):
return lambda y: x + y
add5 = make_adder(5)
print(add5(3))
# Output: 8
이 예제에서 make_adder함수는 하나의 입력을 받아 하나의 입력을 받아 및 의 합계를 반환하는 x람다 함수를 반환합니다 . 변수 에는 호출 결과가 할당됩니다 . 즉, 이제 입력에 5를 더하는 람다 함수를 참조합니다.yxyadd5make_adder(5)
정렬 작업에서 람다 함수를 사용하여 사용자 지정 정렬 순서를 지정할 수도 있습니다. 예를 들어:
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers, key=lambda x: -x)
print(sorted_numbers)
# Output: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
이 예에서 람다 함수는 하나의 입력을 받아 x를 반환합니다 -x. 즉, 정렬 순서는 내림차순입니다. 이 함수는 람다 함수가 반환한 값을 기준으로 목록을 sorted정렬합니다 .numbers
람다 함수는 짧고 간단한 함수를 작성하는 편리한 방법이지만 몇 가지 제한 사항이 있습니다.
주요 제한 사항 중 하나는 람다 함수가 단일 식으로 제한된다는 것입니다. 즉, 여러 문이나 복잡한 제어 흐름을 포함할 수 없습니다.
또한 람다 함수는 이름으로 참조할 수 없으며 정의된 경우에만 호출할 수 있으므로 명명된 함수보다 유연성이 떨어집니다.
Another limitation is that lambda functions do not have a name, which can make debugging more difficult and make it harder to understand the code.
In general, it's a good idea to use named functions for complex operations and only use lambda functions for short and simple operations.
This section covers how to use lambda functions with advanced functions such as reduce, filter, sorted, and key arguments. Additionally, this section provides information on using lambda functions to create anonymous functions for event handlers.
The reduce function is a higher-order function that takes a binary function (a function that takes two arguments) and a list. It returns a single value that is the result of applying the binary function to the elements of the list in a cumulative way.
For example, to calculate the product of all elements in a list, you could use the following code:
from functools import reduce
numbers = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x*y, numbers)
print(product)
# Output: 120
In this example, the lambda function lambda x, y: x*y is used as the binary function in the reduce function. The reduce function starts by applying the binary function to the first two elements of the list, and then applies the result to the next element, and so on until it has processed all elements of the list.
The filter function is another higher-order function that takes a function and a list, and returns a new list that contains only the elements of the original list for which the function returns True.
For example, to filter out even numbers from a list, you could use the following code:
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)
# Output: [2, 4]
In this example, the lambda function lambda x: x % 2 == 0 is used as the function argument in the filter function. The filter function invokes this lambda function for each element in the numbers list and includes the element in the result list only if the lambda function returns True.
The sorted function is a built-in function that sorts a list of elements. The sorted function can take an optional key argument, which is a function that takes an element of the list and returns a value that is used as the sort key.
For example, to sort a list of dictionaries by a specific key, you could use the following code:
employees = [{"name": "John", "age": 32}, {"name": "Jane", "age": 27}, {"name": "Jim", "age": 40}]
sorted_employees = sorted(employees, key=lambda x: x["age"])
print(sorted_employees)
# Output: [{"name": "Jane", "age": 27},
# {"name": "John", "age": 32},
# {"name": "Jim", "age": 40}]
In this example, the lambda function lambda x: x["age"] is used as the key argument in the sorted function. The sorted function uses this lambda function to extract the "age" value for each dictionary in the employees list and uses these values as the sort keys.
함수 외에도 sortedPython의 다른 많은 함수는 , 및 함수를 key포함하여 인수를 사용할 수 있습니다 .maxminsorted
인수 는 목록의 요소를 가져와 정렬 키로 사용되는 값을 반환하는 함수이며 및 key함수의 경우 비교 목적으로도 사용됩니다 .maxmin
예를 들어 직원 목록에서 급여가 가장 높은 직원을 찾으려면 다음 코드를 사용할 수 있습니다.
employees = [{"name": "John", "salary": 50000}, {"name": "Jane", "salary": 55000}, {"name": "Jim", "salary": 60000}]
highest_salary_employee = max(employees, key=lambda x: x["salary"])
print(highest_salary_employee)
# Output: {"name": "Jim", "salary": 60000}
이 예에서 람다 함수는 함수 의 인수 lambda x: x["salary"]로 사용됩니다 . 함수 는 이 람다 함수를 사용하여 목록에 있는 각 직원의 "급여" 값을 추출 하고 이 값을 사용하여 직원을 비교하고 급여가 가장 높은 직원을 찾습니다.keymaxmaxemployees
또한 람다 함수를 사용하여 GUI 프로그래밍의 이벤트 핸들러 또는 기타 유사한 목적을 위한 익명 함수를 생성할 수 있습니다.
예를 들어, 다음 코드에서 버튼 클릭 이벤트는 Tkinter(Python용 GUI 프로그래밍 툴킷)의 람다 함수를 사용하여 처리됩니다.
import tkinter as tk
def on_button_click():
print("Button clicked!")
root = tk.Tk()
button = tk.Button(root, text="Click Me!", command=lambda: print("Button clicked!"))
button.pack()
root.mainloop()
이 예에서는 Tkinter에서 위젯 의 인수 lambda: print("Button clicked!")로 람다 함수를 사용합니다 . 버튼을 클릭하면 람다 함수가 실행되고 "버튼을 클릭했습니다!"라는 메시지가 표시됩니다. 콘솔에 인쇄됩니다.commandButton
이는 람다 함수의 다양성과 유연성을 보여줍니다. 익명 함수가 필요한 다양한 컨텍스트에서 사용할 수 있습니다.
이 섹션에서는 람다 함수를 간단하고 이해하기 쉽게 유지하고, 복잡한 표현식과 문을 피하고, 작업에 적합한 함수 유형을 선택하고, 코드 가독성을 높이기 위해 람다 함수를 문서화하는 등 다양한 모범 사례를 다룹니다.
또한 코드의 가독성을 향상시키기 위해 람다 함수에서 설명 변수 이름을 사용하는 것의 중요성을 강조합니다.
람다 함수를 사용하는 모범 사례 중 하나는 함수를 단순하고 이해하기 쉽게 유지하는 것입니다.
Lambda 함수는 작고 익명의 단일 표현식 함수이며 복잡하거나 다중 문 함수는 키워드를 사용하여 정의하는 것이 더 적합합니다 def.
예를 들어 다음 람다 함수는 간단하고 이해하기 쉬우며 의도한 바를 정확하게 수행합니다.
square = lambda x: x * x
print(square(5))
# Output: 25
람다 함수를 단순하게 유지하는 것 외에도 람다 함수에서 복잡한 표현식과 문을 피하는 것도 중요합니다.
Complex expressions and statements make the code harder to understand and maintain, and can lead to bugs.
For example, the following lambda function is too complex and difficult to understand:
calculate = lambda x, y: x + y if x > y else x - y
print(calculate(5, 10))
# Output: -5
In such cases, it is better to define a named function using the def keyword and provide a meaningful name for the function. This makes the code more readable and easier to maintain:
def calculate(x, y):
if x > y:
return x + y
else:
return x - y
print(calculate(5, 10))
# Output: -5
Lambda functions are best used in situations where you need a small, anonymous, single-expression function. They are not well suited for complex functions with multiple expressions and statements.
For example, a good use case for a lambda function is as an argument to a higher-order function such as map, filter, or reduce. A bad use case for a lambda function is a complex function with multiple expressions and statements.
In general, it is better to use named functions defined using the def keyword for functions that are complex, multi-statement, or are used multiple times in your code.
Another best practice for using lambda functions is to document them for better code readability.
While lambda functions are often intended to be simple and easy to understand, it can still be helpful to provide a brief explanation of what the function does in the form of a docstring or a comment.
예를 들어 코드 가독성을 높이기 위해 다음 람다 함수가 문서화되어 있습니다.
# This lambda function returns the square of its input
square = lambda x: x * x
print(square(5))
# Output: 25
마지막으로 다른 함수에서와 마찬가지로 람다 함수에서 설명 변수 이름을 사용하는 것이 중요합니다. 설명 변수 이름은 코드를 이해하고 유지 관리하기 쉽게 만듭니다.
예를 들어 다음 람다 함수는 설명 변수 이름을 사용합니다.
# This lambda function returns the sum of its inputs
sum = lambda x, y: x + y
print(sum(5, 10))
# Output: 15
이러한 모범 사례를 따르면 람다 함수가 명확하고 간결하며 이해하기 쉬워 코드를 더 읽기 쉽고 유지 관리할 수 있으며 오류가 없도록 만들 수 있습니다.
이 가이드에서는 정의와 목적, 구문, 다양한 애플리케이션에서의 기본 및 고급 사용법을 포함하여 파이썬에서 람다 함수의 기본 사항을 다뤘습니다.
또한 단순하고 이해하기 쉬운 유지, 복잡한 표현식 및 문 피하기, 작업에 적합한 함수 유형 선택, 더 나은 코드 가독성을 위한 문서화 등 람다 함수 사용에 대한 몇 가지 모범 사례에 대해 논의했습니다.
Lambda 함수는 간결하고 읽기 쉽고 효율적인 코드를 작성하기 위한 강력한 도구가 될 수 있습니다. 그러나 단일 표현식으로 제한되고 명명된 함수에 비해 기능이 제한되는 등 몇 가지 제한 사항이 있습니다. 이러한 제한 사항을 고려하고 당면한 작업에 적합한 기능 유형을 선택하는 것이 중요합니다.
결론적으로, 이 가이드는 Python에서 람다 함수와 그 용도에 대한 개요를 제공했으며 이 주제에 대해 자세히 알아보는 여정에 도움이 되었기를 바랍니다. 추가 학습을 위해 공식 Python 설명서를 탐색하고 자신의 프로젝트에서 람다 함수를 사용하여 연습할 수 있습니다.
#python
1679054880
Lambda 함수를 사용하여 Python에서 목록을 정렬하는 방법을 알아봅니다. 람다 함수란 무엇입니까? Lambda 함수로 목록을 정렬합니다. sort() 메서드와 sorted() 함수가 있는 Lambdasort
sort() 메서드와 sorted() 함수를 사용하면 목록 및 튜플과 같은 반복 가능한 데이터를 오름차순 또는 내림차순으로 정렬할 수 있습니다.
정렬을 수행하는 방법을 수정할 수 있는 매개변수를 사용합니다. 그리고 이러한 매개변수 중 하나는 함수 또는 람다 함수일 수 있습니다.
이 문서에서는 람다 함수를 사용하여 목록을 정렬하는 방법을 배웁니다.
sort()메서드와 함수 로 목록을 정렬할 수 있습니다 sorted().
이 메서드 는 sort()두 개의 매개변수를 사용합니다 key. reverse함수를 키로 사용할 수 있지만 반전 매개변수는 부울만 사용할 수 있습니다.
reverse 매개변수의 값을 로 지정하면 True메서드 sort()가 내림차순으로 정렬을 수행합니다. false그리고 의 값으로 지정하면 reverse오름차순으로 정렬됩니다. 기본값이기 때문에 false를 값으로 지정할 필요조차 없습니다.
그러나 두 매개 변수는 선택 사항이므로 두 매개 변수가 없어도 메서드는 여전히 잘 작동합니다.
name_list = ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']
print("Original names:", name_list) # Original names: ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']
name_list.sort()
print("Sorted names:", name_list) # Sorted names: ['Ben Benson', 'John Ann', 'Luigi Austin', 'Zen Jack']
num_list = [34, 11, 35, 89, 37]
print("Original numbers:", num_list) # Original numbers: [34, 11, 35, 89, 37]
num_list.sort()
print("Sorted numbers:", num_list) # Sorted numbers: [11, 34, 35, 37, 89]
sorted()반면에 이 기능은 다음과 같이 작동합니다 sort(). key선택 사항 과 매개변수도 사용 reverse하지만 정렬하려는 iterable의 필수 매개변수를 사용하므로 목록과 별도로 다른 iterable을 정렬하는 데 이상적입니다.
기능 작동 방식은 다음과 같습니다 sorted().
name_list = ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']
print("Original names:", name_list) # Original names: ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']
sorted(name_list)
print("Sorted names:", name_list) # Sorted names: ['Ben Benson', 'John Ann', 'Luigi Austin', 'Zen Jack']
num_list = [34, 11, 35, 89, 37]
print("Original numbers:", num_list) # Original numbers: [34, 11, 35, 89, 37]
sorted(num_list)
print("Sorted numbers:", num_list) # Sorted numbers: [11, 34, 35, 37, 89]
앞서 지적했듯이 함수를 사용하여 다른 이터러블을 정렬할 수도 있습니다 sorted(). 다음은 함수로 튜플을 정렬한 방법입니다 sorted().
name_tuple = ('Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann')
print("Original tuple:", name_tuple) # Original tuple: ('Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann')
sorted(name_tuple)
print("Sorted tuple:", name_tuple) # Sorted tuple: ('Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann')
sort()메소드와 함수 의 키 매개변수에 대한 값으로 함수를 전달할 수 있다는 점도 지적한 것을 기억하십시오 sorted(). 이 함수는 반복 가능한 목록이나 튜플을 정렬하려는 방식에 대해 더 결정적으로 도움을 줄 수 있습니다.
예를 들어 sorted()함수와 sort()메서드는 문자열이나 숫자의 첫 번째 부분만을 기준으로 정렬합니다. 그러나 함수를 키 매개변수로 전달하여 두 번째 부분으로 정렬할 수도 있습니다. 이 함수를 사용하여 목록 또는 기타 이터러블을 정렬하는 방법을 결정할 수 있습니다.
람다 함수는 하나의 표현식을 취하기 때문에 이를 수행하는 데 이상적입니다. 그러나 람다 함수로 정렬하기 전에 람다 함수가 무엇인지 상기시켜 드리겠습니다.
람다 함수는 익명 함수입니다. 키워드로 작성하지 않는 함수입니다 def. 람다 함수는 많은 인수를 가질 수 있지만 표현식은 하나만 가질 수 있습니다.
키워드로 람다 함수를 정의하지 않았으므로 def어떻게 호출합니까? 람다 함수를 변수에 할당한 다음 해당 변수의 이름으로 호출할 수 있습니다.
아래 예에서 addNum람다 함수에는 3개의 인수가 있고 이들을 함께 더합니다.
addNums = lambda a, b, c : a + b + c
res = addNums(4, 12, 4)
print(res) #20
sort()메서드와 함수를 모두 사용하여 목록을 "람다 정렬"할 수 있습니다 sorted(). sort()먼저 메서드를 사용하여 람다 정렬하는 방법을 살펴보겠습니다 .
이전에 정렬한 이름을 가져와서 두 번째 이름으로 정렬해 보겠습니다. 이 람다 함수는 두 번째 이름으로 정렬하는 데 이상적입니다.
lambda name: name.split()[1]
람다 함수는 이름을 분할하고 이름의 두 번째 부분인 두 번째 이름을 취합니다. 첫 번째 부분은 이름이며 [0].
이 람다 함수를 키 매개변수로 전달할 수 있습니다. 두 번째 이름으로 이름을 정렬합니다.
name_list = ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']
print("Original list", name_list) # Original list ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']
name_list.sort(key=lambda name: name.split()[1])
print("Sorted name list", name_list) # Sorted name list ['John Ann', 'Luigi Austin', 'Ben Benson', 'Zen Jack']
이름이 두 번째 이름의 알파벳 순서로 정렬된 것을 볼 수 있습니다. John Ann먼저 왔고 Zen Jack마지막으로 왔습니다. Ann은 A로 시작하고 Jack은 J로 시작합니다.
원하는 경우 함수를 직접 전달할 수도 있습니다. 당신이해야 할 일은 함수를 호출하지 않는 것입니다. 객체로 전달해야 합니다.
name_list = ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']
print("Original list", name_list) # Original list ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']
def sort_by_second_name(name):
return name.split()[1]
name_list.sort(key=sort_by_second_name)
print("Sorted name list", name_list) # Sorted name list ['John Ann', 'Luigi Austin', 'Ben Benson', 'Zen Jack']
이제 마지막 숫자를 기준으로 숫자를 정렬해 보겠습니다. 모르는 경우 %두 숫자에 나머지( ) 연산자를 사용하면 두 숫자를 나누고 나머지를 반환합니다.
print(4 % 2) # returns 0
print(44 % 11) # returns 0
print(104 % 60) # returns 44
print(21 % 2) # returns 1
그러나 여러 자리 숫자를 10으로 "수정"하면 숫자의 마지막 자리가 반환됩니다.
print (44 % 10) # returns 4
print (402 % 10) # returns 2
print (152 % 10) # returns 2
print (1596 % 10) # returns 6
이것이 두 번째 숫자를 얻고 이를 기반으로 숫자를 정렬하는 방법입니다.
다음은 람다 함수를 사용하여 이전 예제의 숫자를 정렬한 방법입니다.
num_list = [22, 34, 11, 35, 89, 37, 93, 56, 108]
print('Original Number:', num_list) # Original Number: [22, 34, 11, 35, 89, 37, 93, 56, 108]
num_list.sort(key=lambda num: num % 10)
print('Lambda sorted number:', num_list) # Lambda sorted number: [11, 22, 93, 34, 35, 56, 37, 108, 89]
보시다시피 이 람다 함수는 lambda num: num % 10각 두 번째 숫자를 기준으로 숫자를 정렬하는 역할을 합니다. 숫자를 람다 함수에 전달하고 % 10. 이 람다 함수는 각 숫자를 실행하고 마지막 숫자를 가져옵니다.
원하는 경우 함수를 키로 직접 전달할 수도 있습니다.
num_list = [22, 34, 11, 35, 89, 37, 93, 56, 108]
print('Original Number:', num_list) # Original Number: [22, 34, 11, 35, 89, 37, 93, 56, 108]
def sort_by_second_num(num):
return num % 10
num_list.sort(key=sort_by_second_num)
print('Lambda sorted number:', num_list) # Lambda sorted number: [11, 22, 93, 34, 35, 56, 37, 108, 89]
이 예에서는 일부 축구 선수의 등번호를 사용하여 튜플 목록을 정렬할 것입니다.
sort()와 메소드 의 유일한 차이점은 필수 반복 가능 항목을 취하고 그렇지 않다는 sorted()것입니다 .sorted()sort()
따라서 sorted()함수를 사용하여 람다 정렬하려면 목록을 iterable로 전달하고 람다 함수를 키로 전달하기만 하면 됩니다.
footballers_and_nums = [("Fabregas", 4),("Beckham" ,10),("Yak", 9), ("Lampard", 8), ("Ronaldo", 7), ("Terry", 26), ("Van der Saar", 1), ("Yobo", 2)]
sorted_footballers_and_nums = sorted(footballers_and_nums, key=lambda index : index[1])
print("Original footballers and jersey numbers", footballers_and_nums) # Original footballers and jersey numbers [('Fabregas', 4), ('Beckham', 10), ('Yak', 9), ('Lampard', 8), ('Ronaldo', 7), ('Terry', 26), ('Van der Saar', 1), ('Yobo', 2)]
print("Sorted footballers by jersey numbers:", sorted_footballers_and_nums) # Sorted footballers by jersey numbers: [('Van der Saar', 1), ('Yobo', 2), ('Fabregas', 4), ('Ronaldo', 7), ('Lampard', 8), ('Yak', 9), ('Beckham', 10), ('Terry', 26)]
정렬을 수행한 람다 함수는 this 입니다 lambda index : index[1]). 람다는 목록의 모든 튜플을 살펴보고 두 번째 인덱스( [1])를 가져와서 정렬하는 데 사용했습니다.
이 기사에서는 람다 함수를 사용하여 sort()메서드와 함수 로 목록을 정렬하는 방법을 보여주었습니다 .sorted()
그러나 그것이 전부가 아닙니다. sort()메서드와 sorted()함수가 람다 함수 없이 어떻게 자체적으로 작동하는지 살펴봤습니다 . 또한 람다 함수가 무엇인지 상기시켜 주었으므로 내가 람다 함수로 어떻게 정렬했는지 이해할 수 있습니다.
읽어 주셔서 감사합니다!
#python