백엔드 개발 파이썬 튜토리얼 Python을 시작하기 위한 고급 기능

Python을 시작하기 위한 고급 기능

Dec 16, 2016 pm 04:34 PM

서문

이러한 새로운 기능은 이전에 c/c++에서 볼 수 없었고, c/c++에서는 이를 지원하지 않습니다.

2조각

무를 썰어서 무의 특정 부분을 얻는다고 상상하면 되는데, 여기서는 아주 잘게 썬다는 비유입니다. Python의 슬라이싱 작업은 목록이나 튜플의 특정 세그먼트를 가져오는 것입니다.

예를 들어 다음과 같이 정의된 목록이 있습니다.

#define a list
l=['Luffy','Corey','Nancy','Jeffrey',' Kyle', 'Avery','Jason','Sunny']

처음 세 요소를 가져오는 방법은 두 가지가 있습니다. 코드는 다음과 같습니다.

>> ;>l[ :3]
['루피', '코리', '낸시']
>>> , '낸시']

즉, 0부터 시작하면 생략해도 됩니다.

2~4번째 요소를 가져오는 코드는 다음과 같습니다.

>>> l[1:5]

['Corey', 'Nancy', ' Jeffrey', 'Kyle']

두 번째부터 마지막까지 가져오는 코드는 다음과 같습니다.

>>> ]

[ 'Jason', 'Sunny']

목록의 길이를 모르고 전체 목록의 내용을 가져오는 코드는 다음과 같습니다.

>>> l[:]

['루피', '코리', '낸시', '제프리', '카일', '에이버리', '제이슨', '써니']

매번 전체 목록에서 2개 중 1개를 선택하세요:

>>> l[::2]

['Luffy', 'Nancy', 'Kyle' , 'Jason']

목록의 처음 6개 항목 중 2개 항목을 선택합니다.

>>> ['Luffy', 'Nancy', 'Kyle']



실제 편집 코드에서는 아래와 같이 슬라이싱 작업에서 목록을 가리키는 변수를 목록 자체로 대체할 수 있는 경우가 많습니다. :

>> ['루피', '코리', '낸시', '제프리', '카일', '에이버리', '제이슨', '써니'][:3]

['Luffy', 'Corey' , 'Nancy']



튜플과 문자열 모두 리스트로 간주할 수 있으므로 위 구문을 사용할 수도 있습니다.

세 가지 목록 생성

목록 생성(List CompRehensions)은 목록 생성을 위해 Python에 내장된 매우 강력한 생성입니다.

가장 간단한 예로, 1부터 10까지의 목록을 만들려면

list(range(1,11))


을 간단하게 사용할 수 있습니다. 단 한 줄의 코드로 완료됩니다. 하지만 더 복잡한 목록을 생성하는 것은 어떻습니까?

[1x1, 2x2, 3x3,...,10x10]과 같은 목록을 생성하는 방법은 무엇입니까? 물론 루프를 사용하여 달성할 수 있지만 코드가 너무 복잡합니다. 목록 생성을 사용하려면 다음 코드 줄만 필요합니다.

>>> 11)]

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]



짝수의 제곱만 더하면 복잡하지 않다 , for 루프 뒤에 if 판단 조건을 추가하기만 하면 됩니다.

>>> [x*x for x in range(1,11) if x % 2 == 0]

[4, 16, 36, 64, 100]



2단계 루프를 사용할 수도 있습니다.

>>> [x+y for x in 'ABC' for y in 'XYZ']

[' AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']



리스트를 엄청 많이 썼네요 세대 표현이라면 다들 이 문법의 유래를 이해하고 계실 거라 생각합니다. 실제로는 일반 구문을 뒤집어 가장 안쪽 계산을 먼저 넣는 것입니다. 예를 들어, 마지막 목록 생성은 다음 일반 구문으로 작성할 수 있습니다:

for x in 'ABC':

for y in 'XYZ':

print(x+y)


4개의 생성자

리스트 생성을 이용하면 바로 리스트를 생성할 수 있지만, 메모리의 한계를 고려하면 많은 수의 리스트를 생성할 수는 없습니다. 요소, 이때 우리는 무엇을 해야 할까요?

Python은 생성기라는 메커니즘을 제공합니다. 생성기를 사용하여 후속 요소를 계산할 수 있으므로 모든 요소를 ​​한 번에 생성할 필요가 없습니다. 제너레이터를 생성하는 방법은 두 가지가 있습니다.

첫 번째 방법: 목록 생성 표현식의 []를 ()로 변경하여 제너레이터를 생성합니다.

다음 코드와 같습니다.

>>> g=(x for x in range(10))

>> > ; print(next(g))

0


생성기의 첫 번째 요소를 가져오려면 g에서 next 함수를 직접 호출할 수 있습니다. 물론 for 루프를 사용하여 다음 단계에서 전체 생성기에서 생성된 데이터를 탐색할 수도 있습니다.

두 번째 방법: 계산 방법이 너무 복잡해서 리스트 생성이 불가능할 경우 함수를 통해 구현할 수 있습니다. 목록 생성에서 생성기로 이동하는 것과 비교하면 함수에서 생성기로 이동하는 것도 매우 간단합니다. 함수를 먼저 작성한 다음 특정 위치에 Yield 키워드를 추가하기만 하면 됩니다.

예를 들어 피보나치 수열을 생성하는 함수는 다음과 같습니다.

def fib(max):
n, a, b = 0, 0, 1
while n < max ; 이 함수를 생성기로 변환하려면 print(b) 코드 줄을 Yield b로 바꾸십시오.

def fib(max):
n, a, b = 0, 0, 1
n < max:
항복 b

a, b = b, a + b

n = n + 1

return 'done'



Yield 키워드가 포함된 함수는 더 이상 함수가 아니라 생성기입니다. 제너레이터의 실행 프로세스는 함수의 실행 프로세스와 다르다는 점에 유의해야 합니다. 생성기는 항복을 만나면 반환되고 다음 호출 시 마지막 반환된 항복부터 실행을 계속합니다.



5개의 반복자

for 루프에서 직접 작동할 수 있는 객체를 총칭하여 반복 가능한 객체라고 합니다. isinstance()를 사용하여 객체가 객체인지 확인할 수 있습니다. 반복 가능한 객체입니다. 제너레이터는 for 루프뿐만 아니라 next()를 사용하여 탐색할 수도 있습니다. next() 함수에 의해 호출될 수 있는 객체를 호출하고 집합적으로 반복자라고 불리는 다음 값인 Iterator를 지속적으로 반환합니다.

여기서는 Iterable과 Iterator를 구별해야 합니다. List, dict 및 str은 모두 Iterable이지만 Iterator는 아닙니다(iter() 함수를 사용하여 Iterable을 Iterator로 바꿀 수 있습니다). Iterator는 무한한 데이터 스트림일 수 있으며 전체 시퀀스의 길이를 미리 알 수 없습니다. 이는 Iterable이 충족할 수 없는 요구 사항입니다.

Six Postscript

여기에 언급된 내용은 Python에서만 배웠던 새로운 프로그래밍 기능입니다. 오류가 있으면 메시지를 남겨주세요! ! !

위 내용은 Python 입문 학습을 위한 고급 기능 내용입니다. 더 많은 관련 글은 PHP 중국어 홈페이지(m.sbmmt.com)를 참고해주세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

필수 시작 코드: Python 프로그래밍 배우기 필수 시작 코드: Python 프로그래밍 배우기 Jan 04, 2024 pm 09:22 PM

Python 프로그래밍을 배우기 위한 필수 입문 코드에는 특정 코드 예제가 필요합니다. 서문: Python은 매우 널리 사용되는 프로그래밍 언어이며 데이터 분석, 기계 학습, 웹 개발 및 기타 분야에서 널리 사용됩니다. 초보자에게는 Python의 몇 가지 기본 구문과 일반적인 코드를 이해하는 것이 매우 중요합니다. 이 기사에서는 Python 프로그래밍을 위한 몇 가지 필수 입문 코드를 소개하고 초보자가 빠르게 시작할 수 있도록 구체적인 코드 예제를 제공합니다. 변수 및 데이터 유형 Python에서는 변수를 사용하여 데이터를 저장할 수 있습니다.

Python을 시작하려면 어떤 소프트웨어를 사용해야 합니까? Python을 시작하려면 어떤 소프트웨어를 사용해야 합니까? Oct 25, 2023 am 10:34 AM

Python 초보자의 경우 프로그래밍을 위해 통합 개발 환경(IDE) 또는 대화형 프로그래밍 환경(예: JupyterNotebook)을 사용하는 것이 좋습니다. 이러한 개발 소프트웨어는 더 나은 코드 편집 및 실행 환경을 제공하여 Python 프로그래밍을 더 쉽게 배우고 마스터하는 데 도움이 됩니다. 개발 소프트웨어를 선택할 때 Python 프로그래밍을 더 잘 배우고 익히려면 자신의 필요와 선호도에 따라 선택하세요.

Python 구문에 대한 고급 가이드: 기초부터 숙달까지 Python 구문에 대한 고급 가이드: 기초부터 숙달까지 Feb 20, 2024 pm 10:00 PM

기본 구문 검토 데이터 유형: Python은 정수, 부동 소수점 숫자, 문자열, 부울 값 및 목록과 같은 다양한 데이터 유형을 제공합니다. 연산자: Python은 산술 연산자(+, -, *, /), 비교 연산자(==, !=, >,

프로그래밍 기술 향상: Go 언어의 고급 기능 배우기 프로그래밍 기술 향상: Go 언어의 고급 기능 배우기 Nov 30, 2023 am 08:17 AM

프로그래밍 기술 향상: Go 언어의 고급 기능을 배우세요. 최근 인터넷의 급속한 발전으로 인해 프로그래밍 기술은 점점 더 많은 사람들이 추구하는 목표 중 하나가 되었습니다. 높은 개발 효율성과 강력한 동시성을 갖춘 프로그래밍 언어로서 Go 언어는 많은 프로그래머의 첫 번째 선택이 되었습니다. 그러나 프로그래밍 기술을 더욱 향상시키려면 Go 언어의 고급 기능을 익히는 것이 필수적입니다. 1. 동시 프로그래밍 오늘날 인터넷 시대에 높은 동시성은 많은 애플리케이션의 기본 요구 사항이 되었습니다. Go 언어는 고유한 장점을 활용하여 본질적으로 동시 프로그래밍을 지원합니다.

Go 언어에서 fn의 고급 기능 살펴보기 Go 언어에서 fn의 고급 기능 살펴보기 Mar 26, 2024 pm 03:24 PM

Go 언어에서 fn의 고급 기능을 살펴보세요. 효율적이고 빠르며 간결한 프로그래밍 언어인 Go 언어는 개발자들에게 깊은 사랑을 받고 있습니다. Go 언어에서 함수는 일급 시민이며 몇 가지 고급 기능을 가지고 있습니다. 이 기사에서는 함수를 하나씩 살펴보겠습니다. 익명 함수(AnonymousFunction) Go 언어는 익명 함수를 지원합니다. 즉, 함수 선언 시 이름을 지정하지 않고 함수를 변수에 직접 할당하거나 필요한 곳에 직접 사용할 수 있습니다. 익명 함수는 클로저 및 기타 시나리오를 구현하는 데 자주 사용됩니다. 예

PHP의 기본 개발 원칙에 대한 심층 연구: 고급 기능 및 기술 분석 PHP의 기본 개발 원칙에 대한 심층 연구: 고급 기능 및 기술 분석 Sep 10, 2023 pm 04:52 PM

PHP의 기본 개발 원칙에 대한 심층 연구: 고급 기능 및 기술 분석 PHP는 단순성, 유연성 및 사용하기 쉬운 기능으로 인해 웹 개발에 널리 사용되는 스크립팅 언어입니다. 그러나 많은 개발자들은 PHP의 기본 개발 원칙을 거의 이해하지 못하고 PHP 사용에만 집중합니다. PHP의 기본 개발 원칙에 대한 심층적인 연구는 성능을 더 잘 최적화하고 잠재적인 보안 문제를 해결하는 데 도움이 될 뿐만 아니라 PHP의 고급 기능과 기술을 더 잘 이해하는 데도 도움이 됩니다. PHP의 기본 개발 원칙에 대한 심층 연구

PHP 캡슐화의 고급 기능 PHP 캡슐화의 고급 기능 Oct 12, 2023 am 10:43 AM

PHP의 캡슐화 고급 기능에는 특정 코드 예제가 필요합니다. 캡슐화는 객체 지향 프로그래밍에서 매우 중요한 개념으로, 객체 내부의 데이터와 동작을 캡슐화하여 데이터를 숨기고 보호합니다. 객체 지향 언어인 PHP는 풍부한 고급 캡슐화 기능도 제공합니다. 이 기사에서는 특정 코드 예제를 통해 이러한 기능을 소개합니다. 액세스 제어(AccessControl) 액세스 제어는 속성과 메서드에 대한 액세스 권한을 제한할 수 있는 캡슐화의 핵심입니다. PHP는 세 가지를 제공합니다

SQL Server/MySQL/PostgreSQL 고급 기능 : [데이터베이스 이름]의 전력을 공급합니다. SQL Server/MySQL/PostgreSQL 고급 기능 : [데이터베이스 이름]의 전력을 공급합니다. Mar 31, 2025 pm 04:07 PM

SQLServer, MySQL 및 PostgreSQL의 고급 기능은 다음과 같습니다. 1. SQLSERVER의 메모리 최적화 테이블 및 열 저장 인덱스; 2. MySQL의 파티션 테이블 및 JSON 지원; 3. PostgreSQL의 창 함수 및 사용자 정의 유형. 이러한 기능은 쿼리 최적화, 성능 향상 및 데이터 관리를 단순화하는 데 매우 유용하지만, 사용할 때는 성능 및 자원 소비에주의를 기울여야합니다.

See all articles