농담처럼 보이는 7 파이썬 내장 (사용할 때까지)


편집자에 의한 이미지 | chatgpt
틀 소개
Python으로 작업한다는 것은 많은 내장 기능, 특히 데이터 과학 작업에 의존하는 것을 의미합니다. 인기있는 기능과 같은 기능 len
,,, max
,,, range
등은 데이터 과학자의 툴킷에서 일반적이며 다양한 상황에서 유용합니다. 그러나 많은 내장 기능은 쓸모없는 것으로 인식되기 때문에 인식되지 않습니다.
이 기사에서는 농담이라고 생각할 수도 있지만 실제로는 응용 프로그램에서 매우 유용하다고 생각할 수있는 7 가지 내장을 탐색 할 것입니다. 이 내장은 일반적인 코드와 다르지만 유용성을 깨닫고 나면 워크 플로에서 자신의 위치를 찾을 수 있습니다.
궁금한? 들어가자.
틀 1 divmod
내장 기능
많은 사람들이 거의 사용하지 않습니다 divmod
내장 기능이거나 심지어 존재한다는 것을 알고 있습니다. 그만큼 divmod
내장 함수는 두 가지 숫자를 반환합니다. 바닥 분할 결과와 모듈러스 작동. 우리가 구문을 사용할 수 있기 때문에 쓸모없는 것처럼 보일 수 있습니다. a // b
그리고 a % b
내장이 필요하지 않으면, 특히 우리가 한 번에 두 결과가 거의 필요하지 않을 때.
실제 사용 사례의 경우, 우리는 종종 두 결과가 필요하며 프로세스를 더 빨리 만들기 위해 일관되게 계산하기를 원합니다. 몇 가지 divmod
시간 변환, 페이지 매김, 배치 및 클리너 해시 수학을 포함한 응용 프로그램은 유용성을 보여줍니다.
사용 예를 보자 :
total_seconds = 7132
minutes, seconds = divmod(total_seconds, 60)
hours, minutes = divmod(minutes, 60)
print(f"Time: {hours:02d}:{minutes:02d}:{seconds:02d}")
출력이 아래에 표시된 경우 :
하나의 기능을 사용하면 숫자를 균등하게 분할 할 수 있으며, 이는 많은 응용 프로그램에 유용합니다.
틀 2 slice
내장 기능
그만큼 slice
내장 기능은 문자열, 목록 또는 튜플과 같은 시퀀스의 일부를 분리하거나 추출하는 데 사용됩니다. 우리는 단순히 같은 슬라이스 객체를 만들 수 있기 때문에 중복 될 수 있습니다. obj[1:10:2]
.
그러나의 강도 slice
다양한 객체에서 동일한 슬라이싱 규칙을 재사용해야 할 때 내장 기능이 분명해집니다. 이 기능은 일관된 구문 분석 논리를 유지하는 데 도움이되며 데이터 처리 전략을 구축 할 수 있습니다.
구현의 예는 다음과 같습니다.
evens = slice(0, None, 2)
text = "abcdefghij"
print(text[evens])
출력은 다음과 같습니다.
그만큼 slice
위의 내장은 우리가 재사용 가능한 규칙을 설정할 수 있음을 보여줍니다.
틀 3 iter
내장 기능
그만큼 iter
내장 함수는 항목을 순차적으로 하나씩 처리하는 반복자 객체를 만듭니다. 우리는 이미 ‘whind true’와 ‘break’패턴을 가지고 있기 때문에 불필요하게 보일 수 있습니다. 그러나 데이터 파이프 라인에서 더 깨끗한 코드와 더 나은 구조를 허용하므로 도움이됩니다.
예를 들어, 우리는 사용할 수 있습니다 iter
스트리밍 데이터 처리를 제어하려면 :
import io
f = io.BytesIO(b"12345678")
for block in iter(lambda: f.read(3), b""):
print(block)
출력이 아래에 표시된 경우 :
틀 4 memoryview
내장 기능
그만큼 memoryview
내장 함수는 내부 데이터를 복사하지 않고 메모리보기 객체를 만듭니다. 표준 파이썬 워크 플로에 자리가없는 불필요한 기능처럼 보일 수 있습니다.
그러나, memoryview
큰 바이너리 데이터를 처리 할 때 기능은 사용자가 새 개체를 만들지 않고 액세스하고 수정할 수 있으므로 유용 해집니다. 예를 들어, 다음 코드와 같이 복사하지 않고 동일한 메모리의 데이터의 일부를 교체 할 수 있습니다.
buf = bytearray(b"hello")
mv = memoryview(buf)
mv[0] = ord('H')
print(buf)
mv[:] = b"HELLO"
print(buf)
출력은 다음과 같습니다.
bytearray(b'Hello')
bytearray(b'HELLO')
과제는 동일한 메모리에서 수행되며, 성능에 민감한 작업에 도움이됩니다.
틀 5 any
내장 기능
그만큼 any
내장 함수는 반복 가능한 객체에서 항목을 확인하여 부울 값을 반환합니다. 돌아옵니다 True
반복 할 수있는 요소가 진실이라면 False
그렇지 않으면. 간단한 점검 루프를 대체하는 것처럼 보이기 때문에 함수는 쓸모없는 것 같습니다.
그러나의 강도 any
기능은 임시 객체를 생성하지 않고 발전기와 함께 게으른 평가를 사용하는 능력에 있습니다. 즉, 함수는 명확한 루프 로직을 가질 수 있고 메모리 사용을 줄일 수 있습니다.
파이썬 코드의 예는 다음과 같습니다.
files = ["report.txt", "sales.csv", "notes.md"]
print(any(f.endswith(".csv") for f in files))
출력이 아래에 표시된 경우 :
검증 또는 가드 조건이 필요한 사례가있는 경우 유익합니다.
틀 6 all
내장 기능
그만큼 all
내장 기능은 다음과 비슷합니다 any
그러나 차이점은 전자가 돌아온다는 것입니다 True
만약에 all
반복의 물체는 진실입니다. 비슷합니다 any
그만큼 all
수동 루프가 동일한 결과를 달성 할 수 있기 때문에 내장 기능은 종종 쓸모없는 것으로 인식됩니다.
그것은 모든 요소가 발전기에 대한 게으른 평가와 함께 진실하다는 선언적이고 단락 검증을 제공하기 때문에 귀중한 내장입니다. 이것은 코드가 더 깨끗하고 메모리가 덜 필요하다는 것을 의미합니다.
예제 사용이 다음 코드를 사용합니다.
required = ["id", "name", "email"]
record = {"id": 1, "name": "Ana", "email": "[email protected]"}
print(all(k in record for k in required))
출력이 아래에 표시된 경우 :
응용 프로그램에는 스키마 검사 및 입력 유효성 검사가 포함됩니다.
틀 7 zip
내장 기능
그만큼 zip
내장 기능은 여러 반복 가능한 물체에서 튜플로 요소를 집계하는 데 사용됩니다. 개발자가 단순히 for i in range(len(x)):
루프 또는 튜플 만 반환하기 때문에.
그만큼 zip
그러나 내장 함수는 저글링 지수없이 여러 반복 가능한 객체를 반복 할 수 있기 때문에 훨씬 더 유용합니다. 함수는 필요할 때만 쌍을 생성하므로 메모리를 낭비하지 않습니다. 또한 인덱싱을 수동으로 관리 할 때 공통 색인 실수를 피합니다.
파이썬 예제는 다음과 같습니다.
keys = ["id", "name", "email"]
vals = [1, "Ana", "[email protected]"]
record = dict(zip(keys, vals))
print(record)
출력이 아래에 표시된 경우 :
{'id': 1, 'name': 'Ana', 'email': '[email protected]'}
인덱스 산술이없는 데이터 세트를 통한 병렬 반복과 같은 많은 응용 프로그램이 존재합니다.
틀 결론
Python은 데이터 관련 활동에 유용한 프로그래밍 언어이며 내장 기능은 해당 유틸리티의 중요한 부분입니다. 그러나 일부 내장은 쓸모없는 것으로 인식됩니다.
이것이 도움이 되었기를 바랍니다!
Cornellius Yudha Wijaya 데이터 과학 보조 관리자 및 데이터 작성자입니다. 그는 Allianz Indonesia에서 풀 타임으로 일하는 동안 소셜 미디어 및 작문 미디어를 통해 Python과 데이터 팁을 공유하는 것을 좋아합니다. Cornellius는 다양한 AI 및 기계 학습 주제에 대해 글을 씁니다.
Post Comment