Python의 일반적인 내장 함수 소개
일명 내장 기능은 가져오기 없이 바로 사용할 수 있습니다. 다음 글에서는 Python의 기본 학습을 위한 몇 가지 일반적인 내장 함수를 주로 소개합니다. 이 글에서는 샘플 코드를 통해 자세하게 소개하고 있습니다. 필요한 친구들은 에디터와 함께 배워 보세요.
서문
Python은 다양한 유형을 처리하기 위한 수많은 내장 함수를 제공합니다. 이러한 내장 함수의 기능은 여러 유형의 개체, 즉 여러 유형의 개체에 대해 유사한 작업을 수행할 수 있다는 것입니다. . 아래에서는 일반적인 작업에 대해 말할 것이 많지 않습니다. 자세한 소개를 살펴보겠습니다.
map()
map() 함수는 두 개의 매개변수를 허용합니다. 하나는 함수이고 다른 하나는 반복 가능한 객체(Iterable)입니다. map은 반복 가능한 객체의 각 요소에 들어오는 함수를 차례로 적용합니다. 그리고 결과를 반복자로 반환합니다.
예를 들어 f(x)=x^2
함수가 있는데 이 함수는 list[1,2,3,4,5,6]에 적용되어야 합니다. ,7 ,8,9]
on: 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把序列的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_pisible(n): return lambda x: x % n > 0
定义一个生成器不断返回下一个素数:
def primes(): yield 2 it = _odd_iter() # 初始序列 while True: n = next(it) # 返回序列的第一个数 yield n it = filter(_not_pisible(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()
간단한 루프를 사용하면 다음을 달성할 수 있습니다.
>>> sorted([36, 5, -12, 9, -21], key=abs) [5, 9, -12, -21, 36]
map()
사용: 🎜🎜🎜🎜 >>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower) ['about', 'bob', 'Credit', 'Zoo']
list()
함수를 통해 전체 시퀀스를 계산하고 목록을 반환할 수 있습니다. 🎜🎜🎜이 목록의 모든 숫자를 문자열로 변환하려면 map()
을 사용하는 것이 간단합니다. 🎜🎜🎜🎜>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True) ['Zoo', 'Credit', 'bob', 'about']
map( )</code >사용자가 입력한 비표준 영어 이름을 첫 글자는 대문자, 그 외는 소문자의 표준 이름으로 변경하는 기능입니다. 입력 <code>['adam', 'LISA', 'barT'],
출력 ['Adam', 'Lisa', 'Bart']
🎜🎜🎜🎜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)
reduce()
함수는 두 개의 매개변수도 허용합니다. 하나는 함수이고 다른 하나는 반복 가능한 객체입니다. 감소는 전달된 함수를 반복 가능한 객체의 각 요소에 적용합니다. . 결과는 누적적으로 계산됩니다. 그런 다음 최종 결과를 반환합니다. 🎜🎜🎜효과는 다음과 같습니다: reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
🎜🎜🎜예를 들어 , 시퀀스 [1,2,3,4,5]
를 정수 12345로 변환하세요. 🎜🎜🎜🎜L2=sorted(L,key=lambda t:t[1]) print(L2)
prod()
함수를 작성하세요. 허용됩니다. 목록을 사용하고 곱을 계산하기 위해 Reduce를 사용합니다. 🎜🎜🎜🎜rrreee🎜map()
및 reduce()
종합 연습: str2float 함수를 작성하여 부동 소수점 유형 123.456🎜🎜🎜🎜rrreee🎜🎜🎜filter()🎜🎜🎜🎜filter()
함수는 시퀀스를 필터링하는 데 사용됩니다. filter()</ code>는 또한 함수와 A 시퀀스를 허용하며, <code>filter()
는 전달된 함수를 각 요소에 차례로 적용한 다음 반환 값이 True인지 False인지에 따라 요소를 유지할지 아니면 삭제할지 결정합니다. . 🎜🎜🎜예를 들어, 목록에서 짝수를 삭제하세요: 🎜🎜🎜🎜rrreee🎜🎜작은 연습: 소수를 찾으려면 filter()를 사용하세요. 🎜🎜🎜소수를 계산하는 한 가지 방법은 에를리히 체(Ehrlich sieve) 방법이며, 알고리즘은 다음과 같습니다. 이해하기 매우 간단합니다. 🎜🎜🎜먼저 2부터 시작하는 모든 자연수를 나열하고 수열을 구성합니다: 🎜🎜🎜2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 , 17, 18, 19, 20, ...🎜🎜🎜수열의 첫 번째 숫자 2(소수여야 함)를 선택한 다음 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부터 시작하는 마침표 시퀀스를 구성하세요. 🎜🎜🎜🎜🎜rrreee🎜 필터링 함수 정의: 🎜🎜🎜🎜rrreee🎜 다음 소수를 연속적으로 반환하는 생성기 정의: 🎜🎜 🎜🎜rrreee🎜100 이내의 소수 인쇄: 🎜🎜🎜🎜rrreee🎜🎜🎜sorted()🎜🎜🎜🎜Python의 내장 sorted()
함수는 목록을 정렬할 수 있습니다: 🎜🎜🎜🎜rrreee 🎜 sorted()
함수도 고차 함수이며 사용자 정의 정렬을 구현하기 위해 키 함수를 허용할 수도 있습니다. 🎜🎜🎜🎜rrreee🎜 key로 지정된 함수는 목록을 작성하고 키 함수에서 반환된 결과에 따라 정렬합니다.🎜🎜默认情况下,对字符串排序,是按照ASCII的大小比较的,由于'Z' < 'a',结果,大写字母Z会排在小写字母a的前面。如果想忽略大小写可都转换成小写来比较:
>>> 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)
위 내용은 Python의 일반적인 내장 함수 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











VS 코드는 Windows 8에서 실행될 수 있지만 경험은 크지 않을 수 있습니다. 먼저 시스템이 최신 패치로 업데이트되었는지 확인한 다음 시스템 아키텍처와 일치하는 VS 코드 설치 패키지를 다운로드하여 프롬프트대로 설치하십시오. 설치 후 일부 확장은 Windows 8과 호환되지 않을 수 있으며 대체 확장을 찾거나 가상 시스템에서 새로운 Windows 시스템을 사용해야합니다. 필요한 연장을 설치하여 제대로 작동하는지 확인하십시오. Windows 8에서는 VS 코드가 가능하지만 더 나은 개발 경험과 보안을 위해 새로운 Windows 시스템으로 업그레이드하는 것이 좋습니다.

VS 코드 확장은 악의적 인 코드 숨기기, 취약성 악용 및 합법적 인 확장으로 자위하는 등 악성 위험을 초래합니다. 악의적 인 확장을 식별하는 방법에는 게시자 확인, 주석 읽기, 코드 확인 및주의해서 설치가 포함됩니다. 보안 조치에는 보안 인식, 좋은 습관, 정기적 인 업데이트 및 바이러스 백신 소프트웨어도 포함됩니다.

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

vs 코드에서는 다음 단계를 통해 터미널에서 프로그램을 실행할 수 있습니다. 코드를 준비하고 통합 터미널을 열어 코드 디렉토리가 터미널 작업 디렉토리와 일치하는지 확인하십시오. 프로그래밍 언어 (예 : Python의 Python Your_file_name.py)에 따라 실행 명령을 선택하여 성공적으로 실행되는지 여부를 확인하고 오류를 해결하십시오. 디버거를 사용하여 디버깅 효율을 향상시킵니다.

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

VS 코드는 파이썬을 작성하는 데 사용될 수 있으며 파이썬 애플리케이션을 개발하기에 이상적인 도구가되는 많은 기능을 제공합니다. 사용자는 다음을 수행 할 수 있습니다. Python 확장 기능을 설치하여 코드 완료, 구문 강조 및 디버깅과 같은 기능을 얻습니다. 디버거를 사용하여 코드를 단계별로 추적하고 오류를 찾아 수정하십시오. 버전 제어를 위해 git을 통합합니다. 코드 서식 도구를 사용하여 코드 일관성을 유지하십시오. 라인 도구를 사용하여 잠재적 인 문제를 미리 발견하십시오.

VS 코드는 Mac에서 사용할 수 있습니다. 강력한 확장, GIT 통합, 터미널 및 디버거가 있으며 풍부한 설정 옵션도 제공합니다. 그러나 특히 대규모 프로젝트 또는 고도로 전문적인 개발의 경우 VS 코드는 성능 또는 기능 제한을 가질 수 있습니다.

Code vs Code에서 Jupyter 노트북을 실행하는 핵심은 Python 환경이 올바르게 구성되어 있는지 확인하고 코드 실행 순서가 셀 순서와 일치하고 성능에 영향을 줄 수있는 큰 파일 또는 외부 라이브러리를 알고 있어야합니다. VS 코드에서 제공하는 코드 완료 및 디버깅 기능은 코딩 효율성을 크게 향상시키고 오류를 줄일 수 있습니다.
