파이썬 고급 함수 소개
26800 단어 python
만약 자바스크립트 블로그 글을 읽는 것에 흥미가 있다면, 그것을 찾을 수 있을 것이다.
모조리
all 방법은 iterable를 매개 변수로 받아들이고 iterable의 모든 조건이 True일 때만 True를 되돌려줍니다.그렇지 않으면 False의 all 메서드를 반환합니다.
arr = [1, 2, 3, 4, 5]
all(i > 0 for i in arr)
=> True
all( i < 4 for i in arr)
=> False
필터
filter 방법은 조건에 맞는 목록에 있는 모든 요소의 새 목록을 되돌려줍니다.이 방법은 함수와iterable를 매개 변수로 받아들인다.단, 필터 방법은 목록이 아닌 필터 대상을 되돌려줍니다.따라서 필터 대상을 목록으로 변환해야 합니다.
arr = [1, 2, 3, 4, 5]
def filter_function(x):
return x > 2
list(filter(filter_function, arr))
=> [3, 4, 5]
# Alternatively
list(filter(lambda x: x > 2, arr))
=> [3, 4, 5]
앞에 있는 필터는 작동할 수 있지만, 함수를 매개 변수로 입력해야 하기 때문에 약간 혼란스러울 수 있습니다.Python은 목록 이해(list comprehension)라는 강력한 기능을 제공하여 필터링할 때 더욱 광범위하게 사용된다.arr = [1, 2, 3, 4 5]
[x for x in arr if x > 2]
=> [3, 4, 5]
사용 목록 이해는 더욱 영리하다고 여겨지므로 주로 사용해야 한다.그러나 만약 필터가 여러 단계의 과정을 필요로 한다면 필터 기능이 가장 좋은 선택이 될 수 있다.다음
다음 방법은 조건을 만족시키는 목록의 첫 번째 요소를 되돌려줍니다.이것은 다른 언어의find 방법과 유사합니다.다음은iterable를 매개 변수로 받아들입니다.다음 예제를 참조하십시오.
arr = [1, 2, 3, 4, 5]
next(x for x in arr if x > 2)
=> 3
파이썬이 목록에서 요소를 찾을 수 없으면 StopIteration 예외가 발생합니다. 잘못 처리하면 프로그램이 붕괴될 수 있습니다.따라서 Python에서 기본 매개 변수를 지정할 수 있습니다.arr = [1, 2, 3, 4, 5]
next(x for x in arr if x > 5)
=> StopIteration
next((x for x in arr if x > 5), None)
=> None
알림: 교체기를 괄호로 묶는 것을 잊지 마세요.그렇지 않으면 문법 오류가 발생할 수 있다.포함
Python은 in 키워드를 사용하여 배열에 요소가 있는지 확인합니다.다음 예제를 참조하십시오.
arr = [1, 2, 3, 4, 5]
1 in arr
=> True
6 in arr
=> False
매 사람
배열의 모든 요소에 대한 작업을 수행하기 위해서, 파이톤은 for 순환을 사용합니다.다음 예제를 참조하십시오.
arr = [1, 2, 3, 4, 5]
for x in arr:
print(f'Hello, I am {x}')
=> Hello, I am 1
Hello, I am 2
Hello, I am 3
Hello, I am 4
Hello, I am 5
x의 값을 바꾸면 원본 목록이 바뀌지 않는다는 것을 반드시 주의하십시오.arr = [1, 2, 3, 4, 5]
for x in arr:
x = x * 2
print(arr)
=> [1, 2, 3, 4, 5]
업데이트된 목록을 되돌릴 수 있는 방법이 있다.그러나 for 순환에 비해 맵은 더 좋은 선택입니다.for 순환은 목록의 모든 항목에 외부 작업을 수행하는 데 주로 사용됩니다.지도.
map 방법은 함수로 변환된 모든 요소를 포함하는 새로운 목록을 되돌려줍니다.이 방법은 두 개의 인자를 받아들인다. 함수와iterable.Filter와 유사하게 맵 방법은 맵의 대상을 되돌려줍니다. 따라서 이 맵의 대상을 목록으로 변환해야 합니다.다음 예제를 참조하십시오.
arr = [1, 2, 3, 4, 5]
def square(x):
return x * x
list(map(square, arr))
=> [1, 4, 9, 16, 25]
# Alternatively...
list(map(lambda x: x * x, arr))
그러나 필터링 방법처럼 목록 이해를 통해 이 문제를 해결할 수 있다.다음 예제를 참조하십시오.arr = [1, 2, 3, 4, 5]
[x * x for x in arr]
=> [1, 4, 9, 16, 25]
마찬가지로 리스트 이해가 최선의 방법이며 구렁이 같다고 여겨진다줄다
reduce 방법은 목록의 모든 값을 하나의 값으로 줄입니다.예를 들어, 목록의 합은 이 목록의 모든 요소를 받아들이고 값을 되돌려주기 때문에 가장 간단한 간략한 것으로 여겨질 수 있다.이런 방법은 감각적으로는 필터와 반사와 유사하지만 약간 복잡하다.reduce 방법은 두 개의 필수 매개 변수와 선택할 수 있는 매개 변수를 받아들인다.첫 번째 필수 매개 변수로서, Reduce 방법은 두 개의 매개 변수를 포함하는 방법을 받아들인다.이 내부 함수의 첫 번째 매개 변수는 누적기이고, 두 번째 매개 변수는 목록의 요소이다.이것이 내재된 방법의 전부다.reduce 방법의 두 번째 매개 변수는list이고 세 번째 매개 변수는 선택할 수 있는 start 매개 변수입니다.
또한 Reduce 함수는 Python 라이브러리functools가 필요하기 때문에 이 라이브러리를 가져오는 것을 잊지 마십시오.나는 이것이 사람을 곤혹스럽게 하는 것 같다는 것을 알고 있기 때문에 코드가 당신이 더욱 잘 이해하는 데 도움을 줄 수 있기를 바랍니다.
import functools
def square_reducer(x, y):
return x * y
arr = [1, 2, 3, 4, 5]
functools.reduce(square_reducer, arr)
=> 120
# Alternatively
functools.reduce(lambda x, y: x * y, arr)
=> 120
functools.reduce(square_reducer, arr, 2)
=> 240
# Alternatively
functools.reduce(lambda x, y: x * y, arr, 2)
=> 240
첫 번째 Reduce 함수가 가장 간단합니다.우선, 우리는 첫 번째 원소에 들어가서, 그것을 누적기 (x) 에 넣는다.그리고 우리는 누적기에 두 번째 원소를 곱할 것이다.그러니까 1*2=2.우리의 누적기 값은 2이다.다음에 우리는 누적기 값을 세 번째 원소(2*3)에 곱할 것이다.우리가 얻은 값은 6이다.우리는 전체 진열을 완성할 때까지 계속했다.마지막으로, 이것이 바로 발생하고 있는 일이다.1 * 2 * 3 * 4 * 5
=> 120
두 번째 Reduce 함수는 같은 일을 하지만 lambda 함수를 사용하기 때문에 Reducer 방법을 따로 설명할 필요가 없습니다.세 번째 기능은 첫 번째 기능과 같지만, 누적기에서 2로 설정합니다.따라서 다음과 같습니다.
2 * 1 * 2 * 3 * 4 * 5
=> 240
네 번째는 세 번째와 같지만 lambda 함수를 사용합니다.정렬
sort 방법은 목록의 새로운 정렬 버전을 되돌려줍니다.정렬 방법은 필수 매개 변수와 선택할 수 있는 두 개의 매개 변수 (reverse와 키) 를 받아들인다.첫 번째 매개변수는 목록입니다.reverse optional 매개 변수는 정렬된 목록을 반전시키고 키 optional 매개 변수는 목록 정렬의 기초 함수입니다.다음 예제를 참조하십시오.
arr = [2, 1, 5, 3, 4]
sorted(arr)
=> [1, 2, 3, 4, 5]
sorted(arr, reverse=True)
=> [5, 4, 3, 2, 1]
students = [
{'name': 'Jimmy', 'age': 15},
{'name': 'Hector', 'age': 18},
{'name': 'Paige', 'age': 16}
]
sorted(students, key=lambda x: x['age'])
=> [{'name': 'Jimmy', 'age': 15}, {'name': 'Paige', 'age': 16}, {'name': 'Hector', 'age': 18}]
분 단위
min 방법은 Python 목록에서 최소값을 검색합니다.이 방법은 필수 매개 변수와 선택할 수 있는 세 개의 매개 변수를 받아들인다.필요한 매개 변수는iterable 자체입니다.또는 이 함수에 지속 매개 변수로 더 많은 대상을 추가할 수 있습니다.키(정렬 방법과 유사)를 사용하여 정렬하고 기본값을 지정할 수도 있다.다음 예제를 참조하십시오.
arr = [1, 2, 3, 4, 5]
min(arr)
=> 1
min(0, -2, 1, 8, 5)
=> -2
students = [
{'name': 'Jimmy', 'age': 15},
{'name': 'Hector', 'age': 18},
{'name': 'Paige', 'age': 16}
]
min(students, key=lambda x: x['age'])
=> {'name': 'Jimmy', 'age': 15}
min([], default=0)
=> 0
맥스
최대치법은 최소치법과 같다.그러나,iterable에서 최대 값을 찾았습니다.다음 예제를 참조하십시오.
arr = [1, 2, 3, 4, 5]
max(arr)
=> 5
max(0, -2, 1, 8, 5)
=> 8
students = [
{'name': 'Jimmy', 'age': 15},
{'name': 'Hector', 'age': 18},
{'name': 'Paige', 'age': 16}
]
max(students, key=lambda x: x['age'])
=> {'name': 'Hector', 'age': 18}
max([], default=100)
=> 100
결론
고급 함수는 매우 쓰기 좋아서, 만약 당신이 알고 있다면 많은 시간과 두통을 절약할 수 있을 것이다.나는 네가 이 방법들이 유용하고 사용하기 쉽다고 생각하기를 바란다.즐거운 코딩!
Reference
이 문제에 관하여(파이썬 고급 함수 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/brandonbrown4792/using-python-list-comprehension-j3j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)