Python 기초 학습 에서 흔히 볼 수 있 는 내장 함수 정리

6713 단어 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)
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기