Python 기초 학습 에서 흔히 볼 수 있 는 내장 함수 정리
Python 은 여러 가지 유형 에 대해 여러 가지 내장 함 수 를 제공 하여 처리 합 니 다.이런 내장 함수 의 기능 은 여러 가지 유형 대상 에 대해 유사 한 조작 을 할 수 있 습 니 다.즉,여러 가지 유형 대상 이 공유 하 는 조작 입 니 다.다음은 더 이상 말 하지 않 겠 습 니 다.상세 한 소 개 를 해 보 겠 습 니 다.
map()
map()함 수 는 두 개의 인 자 를 받 아들 입 니 다.하 나 는 함수 입 니 다.하 나 는 교체 가능 한 대상(Iterable)입 니 다.map 는 들 어 오 는 함 수 를 교체 가능 한 대상 의 모든 요소 에 순서대로 작용 하고 결 과 를 교체 기(Iterator)로 되 돌려 줍 니 다.
예 를 들 어 하나의 함수
f(x)=x^2
가 있 는데 이 함 수 를 하나의list[1,2,3,4,5,6,7,8,9]
에 작용 해 야 한다.간단 한 순환 을 활용 하여 실현 할 수 있다.
>>> def f(x):
... return x * x
...
L = []
for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]:
L.append(f(n))
print(L)
고급 함수 활용map()
:
>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> list(r)
[1, 4, 9, 16, 25, 36, 49, 64, 81]
결과 r 는 교체 기 입 니 다.교체 기 는 타성 서열 입 니 다.list()
함 수 를 통 해 전체 서열 을 계산 하고 list 로 되 돌려 줍 니 다.이 list 의 모든 숫자 를 문자열 로 바 꾸 려 면
map()
간단 합 니 다.
>>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
['1', '2', '3', '4', '5', '6', '7', '8', '9']
작은 연습:map()
함 수 를 이용 하여 사용자 가 입력 한 규범 에 맞지 않 는 영어 이름 을 이니셜 대문자 다른 소문 자의 규범 이름 으로 바 꿉 니 다.입력['adam', 'LISA', 'barT'],
출력['Adam', 'Lisa', 'Bart']
def normalize(name):
return name.capitalize()
l1=["adam","LISA","barT"]
l2=list(map(normalize,l1))
print(l2)
reduce()reduce()
함수 도 두 개의 매개 변 수 를 받 아들 이 고 하 나 는 함수 이 며 하 나 는 교체 가능 한 대상 이 며 reduce 는 들 어 오 는 함 수 를 교체 가능 한 대상 의 모든 요소 에 작용 하 는 결 과 를 누적 계산 합 니 다.그리고 최종 결 과 를 되 돌려 줍 니 다.효 과 는:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
예 를 들 어 서열[1,2,3,4,5]
을 정수 12345 로 바 꾸 었 다.
>>> from functools import reduce
>>> def fn(x, y):
... return x * 10 + y
...
>>> reduce(fn, [1, 2, 3, 4, 5])
12345
작은 연습:prod()
함 수 를 작성 하면 list 를 받 아들 이 고 reduce 를 이용 하여 적 을 구 할 수 있 습 니 다.
from functools import reduce
def pro (x,y):
return x * y
def prod(L):
return reduce(pro,L)
print(prod([1,3,5,7]))
map()
와reduce()
종합 연습:str2float 함 수 를 작성 하여 문자열'123.456'을 부동 소수점 형 123.456 으로 변환 합 니 다.
CHAR_TO_FLOAT = {
'0': 0,'1': 1,'2': 2,'3': 3,'4': 4,'5': 5,'6': 6,'7': 7,'8': 8,'9': 9, '.': -1
}
def str2float(s):
nums = map(lambda ch:CHAR_TO_FLOAT[ch],s)
point = 0
def to_float(f,n):
nonlocal point
if n==-1:
point =1
return f
if point ==0:
return f*10+n
else:
point =point *10
return f + n/point
return reduce(to_float,nums,0)# 0 , to_float f
filter()filter()
함 수 는 필터 시퀀스 에 사 용 됩 니 다.filter()
도 하나의 함수 와 하나의 시퀀스 를 받 아들 입 니 다.filter()
들 어 오 는 함 수 를 각 요소 에 순서대로 작용 한 다음 에 반환 값 이 True 인지 False 인지 에 따라 이 요 소 를 보류 할 지 버 릴 지 결정 합 니 다.예 를 들 어 list 의 짝수 삭제:
def is_odd(n):
return n % 2 == 1
list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
# : [1, 5, 9, 15]
작은 연습:filter()로 소수 구하 기소 수 를 계산 하 는 방법 중 하 나 는 에 씨 체 법 으로 그 알고리즘 은 이해 하기 매우 간단 하 다.
우선,2 부터 시 작 된 모든 자연 수 를 열거 하고 하나의 서열 을 구성 합 니 다.
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...
서열 의 첫 번 째 숫자 2 를 취하 면 반드시 소수 이 고 그 다음 에 서열 의 2 의 배수 로 걸 러 냅 니 다.
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...
새로운 서열 의 첫 번 째 숫자 3 을 취하 면 반드시 소수 이 고 3 으로 서열 의 3 배 수 를 걸 러 냅 니 다.
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...
새로운 서열 의 첫 번 째 숫자 5 를 취하 고 5 개의 서열 의 5 의 배수 로 체 로 떼 어 냅 니 다.
7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...
끊임없이 걸 러 내 면 모든 소 수 를 얻 을 수 있다.
Python 으로 이 알고리즘 을 구현 하고 3 부터 시작 하 는 기수 수열 을 만 듭 니 다.
def _odd_iter():
n = 1
while True:
n = n + 2
yield n
# ,
필터 함수 정의:
def _not_divisible(n):
return lambda x: x % n > 0
다음 소수 로 되 돌아 가 는 생 성 기 를 정의 합 니 다:
def primes():
yield 2
it = _odd_iter() #
while True:
n = next(it) #
yield n
it = filter(_not_divisible(n), it) #
인쇄 100 이내 소수:
for n in primes():
if n < 100:
print(n)
else:
break
sorted()python 에 내 장 된
sorted()
함 수 는 list 를 정렬 할 수 있 습 니 다:
>>> sorted([36, 5, -12, 9, -21])
[-21, -12, 5, 9, 36]
sorted()
함수 도 고급 함수 이 고 key 함 수 를 받 아들 여 사용자 정의 정렬 을 실현 할 수 있 습 니 다.
>>> sorted([36, 5, -12, 9, -21], key=abs)
[5, 9, -12, -21, 36]
key 가 지정 한 함 수 는 list 의 모든 요소 에 작용 하고 key 함수 가 돌아 온 결과 에 따라 정렬 합 니 다.기본적으로 문자열 에 대한 정렬 은 ASCII 의 크기 에 따라 비 교 됩 니 다.'Z'
>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)
['about', 'bob', 'Credit', 'Zoo']
역방향 정렬 을 하려 면 key 함 수 를 바 꿀 필요 가 없습니다.세 번 째 인자reverse=True
를 입력 할 수 있 습 니 다.
>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
['Zoo', 'Credit', 'bob', 'about']
작은 연습:만약 에 우리 가 한 조 의 tuple 로 학생 의 이름과 성적 을 나타 낸다 고 가정 하면L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
.sorted()
로 상기 목록 을 각각 c 성적 에서 낮은 순위 로 정렬 합 니 다.
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_score(t):
for i in t:
return t[1]
L2=sorted(L,key= by_score)
print(L2)
익명 함 수 를 사용 하여 더욱 간결 합 니 다:
L2=sorted(L,key=lambda t:t[1])
print(L2)
총결산이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.