찾다
백엔드 개발파이썬 튜토리얼당신이 한 번도 들어본 적 없는 Python의 5가지 숨겨진 트릭

당신이 한 번도 들어본 적 없는 Python의 5가지 숨겨진 트릭

인생은 짧습니다. Python을 빨리 배우세요

1. ... 객체

예, 제대로 읽으셨습니다. "..."입니다.

Python에서는... Ellipsis 객체라는 객체를 나타냅니다. 공식 설명에 따르면 일반적으로 빈 함수의 자리 표시자로 사용하거나 Numpy에서 슬라이싱 작업에 사용할 수 있는 특수 값입니다.

예:

def my_awesome_function():
...

def my_awesome_function():
Ellipsis

와 동일합니다. 물론 패스나 문자열을 자리 표시자로 사용할 수도 있습니다.

def my_awesome_function():
pass
def my_awesome_function():
"An empty, but also awesome function"

최종 효과는 동일합니다.

Numpy에서 객체가 어떻게 작동하는지 이야기해 보겠습니다. 3x3x3 행렬 배열을 만든 다음 가장 안쪽 행렬의 두 번째 열을 가져옵니다.

>>> import numpy as np
>>> array = np.arange(27).reshape(3, 3, 3)
>>> array
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]],
 [[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
 [[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]])

가장 안쪽 행렬 열의 두 번째 열을 얻으려면 전통적인 방법을 사용하세요. 다음과 같이 보일 수 있습니다:

>>> array[:, :, 1]
array([[ 1, 4, 7],
 [10, 13, 16],
 [19, 22, 25]])

... 객체를 사용하는 경우 다음과 같이 보일 것입니다:

>>> array[..., 1]
array([[ 1, 4, 7],
 [10, 13, 16],
 [19, 22, 25]])

그러나 참고하세요... 객체는 Python 내장 배열이 아닌 Numpy에서만 사용할 수 있습니다.

2. 반복 개체 압축 풀기

반복 개체 압축 풀기는 매우 편리한 기능입니다:

>>> a, *b, c = range(1, 11)
>>> a
1
>>> c
10
>>> b
[2, 3, 4, 5, 6, 7, 8, 9]

또는:

>>> a, b, c = range(3)
>>> a
0
>>> b
1
>>> c
2

마찬가지로 다음과 같은 코드를 작성하는 대신:

>>> lst = [1]
>>> a = lst[0]
>>> a
1
>>> (a, ) = lst
>>> a
1

같은 방식으로 업데이트하는 것이 좋습니다. 반복 객체의 압축을 풀면서 우아한 할당 작업:

>>> lst = [1]
>>> [a] = lst
>>> a
1

좀 멍청해 보이지만 내 개인적인 의견으로는 이전 작성 방식보다 더 우아합니다.

3. 확장의 예술

다음과 같이 배열을 확장하는 여러 가지 이상한 방법이 있습니다.

>>> l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> flattened = [elem for sublist in l for elem in sublist]
>>> flattened
[1, 2, 3, 4, 5, 6, 7, 8, 9]

리듀스와 람다에 대해 어느 정도 이해하고 있다면 좀 더 우아한 방법을 사용하는 것이 좋습니다:

>>> from functools import reduce
>>> reduce(lambda x,y: x+y, l)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

combine 감소 및 람다, l 배열의 각 하위 배열에 대해 접합 작업을 수행할 수 있습니다.

물론, 더 마법 같은 방법도 있습니다:

>>> sum(l, [])
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> # 其实相当于 [] + [1, 2, 3] + [4, 5, 6] + [7, 8, 9]

예, 2차원 배열에 합계 연산을 수행하면 2차원 배열의 각 요소를 "덧셈"을 통해 함께 연결할 수 있습니다.

마찬가지로 3차원 배열에 합 연산을 하면 2차원 배열로 변환이 가능합니다. 이때 2차원 배열에 합 연산을 하면 가능합니다. 1차원 배열로 확장됩니다.

이 기술은 훌륭하지만 가독성이 너무 좋지 않기 때문에 권장하지 않습니다.

4. 밑줄 _ 변수

Python 인터프리터, IPython 또는 Django 콘솔에서 표현식을 실행할 때마다 Python은 출력 값을 _ 변수에 바인딩합니다.

>>> nums = [1, 3, 7]
>>> sum(nums)
11
>>> _
11
>>>

변수이므로 다음에서 재정의할 수 있습니다.

>>> 9 + _
20
>>> a = _
>>> a
20

5. else의 다양한 용도

많은 사람들은 else가 여러 곳에서 사용될 수 있다는 사실을 모릅니다. in 루프 예외 처리에 사용됩니다.

Loop

특정 논리가 루프에서 처리되는지 확인해야 하는 경우 일반적으로 다음을 수행합니다.

found = False
a = 0
while a < 10:
if a == 12:
found = True
a += 1
if not found:
print("a was never found")

else가 도입되면 변수를 하나 덜 사용할 수 있습니다.

a = 0
while a < 10:
if a == 12:
break
a += 1
else:
print("a was never found")

예외 처리

우리는 다음을 사용할 수 있습니다. try.. 예외가 포착되지 않은 경우 else in Except ...를 사용하여 논리를 작성합니다.

In [13]: try:
...: {}['lala']
...: except KeyError:
...: print("Key is missing")
...: else:
...: print("Else here")
...:
Key is missing

이런 식으로 프로그램에 예외가 없으면 else 분기를 사용합니다.

In [14]: try:
...: {'lala': 'bla'}['lala']
...: except KeyError:
...: print("Key is missing")
...: else:
...: print("Else here")
...:
Else here

자주 예외 처리를 수행하는 경우 , 당신은 이 트릭을 아주 편리하게 알게 될 것입니다.

위 내용은 당신이 한 번도 들어본 적 없는 Python의 5가지 숨겨진 트릭의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 51CTO.COM에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Numpy 배열은 배열 모듈을 사용하여 생성 된 배열과 어떻게 다릅니 까?Numpy 배열은 배열 모듈을 사용하여 생성 된 배열과 어떻게 다릅니 까?Apr 24, 2025 pm 03:53 PM

numpyarraysarebetterfornumericaloperations 및 multi-dimensionaldata, mumemer-efficientArrays

Numpy Array의 사용은 Python에서 어레이 모듈 어레이를 사용하는 것과 어떻게 비교됩니까?Numpy Array의 사용은 Python에서 어레이 모듈 어레이를 사용하는 것과 어떻게 비교됩니까?Apr 24, 2025 pm 03:49 PM

numpyarraysarebetterforheavynumericalcomputing, whilearraymoduleisiMoresuily-sportainedprojectswithsimpledatatypes.1) numpyarraysofferversatively 및 formanceforgedatasets 및 complexoperations.2) Thearraymoduleisweighit 및 ep

CTYPES 모듈은 파이썬의 어레이와 어떤 관련이 있습니까?CTYPES 모듈은 파이썬의 어레이와 어떤 관련이 있습니까?Apr 24, 2025 pm 03:45 PM

ctypesallowscreatingandmanipulatingC-stylearraysinPython.1)UsectypestointerfacewithClibrariesforperformance.2)CreateC-stylearraysfornumericalcomputations.3)PassarraystoCfunctionsforefficientoperations.However,becautiousofmemorymanagement,performanceo

파이썬의 맥락에서 '배열'및 '목록'을 정의하십시오.파이썬의 맥락에서 '배열'및 '목록'을 정의하십시오.Apr 24, 2025 pm 03:41 PM

Inpython, "목록", isaversatile, mutablesequencetatcanholdmixeddatattypes, whilean "array"isamorememory-efficed, homogeneouseceenceRequiringElements ofthesAmeType.1) ListSareIdeAldiversEdatastorageandmanipulationDuetoIrflexibrieth

파이썬 목록은 변이 가능합니까? 파이썬 어레이는 어떻습니까?파이썬 목록은 변이 가능합니까? 파이썬 어레이는 어떻습니까?Apr 24, 2025 pm 03:37 PM

PythonlistsAndarraysareBotheBotheBothebothable.1) ListSareflexibleandsupporterogenousDatabutarabestemory-efficient.2) Arraysaremorememory-efforhomogeneousdatabutlessverstile, CorrectTypecodeusagetoavoidercer가 필요합니다.

Python vs. C : 주요 차이점 이해Python vs. C : 주요 차이점 이해Apr 21, 2025 am 12:18 AM

Python과 C는 각각 고유 한 장점이 있으며 선택은 프로젝트 요구 사항을 기반으로해야합니다. 1) Python은 간결한 구문 및 동적 타이핑으로 인해 빠른 개발 및 데이터 처리에 적합합니다. 2) C는 정적 타이핑 및 수동 메모리 관리로 인해 고성능 및 시스템 프로그래밍에 적합합니다.

Python vs. C : 프로젝트를 위해 어떤 언어를 선택해야합니까?Python vs. C : 프로젝트를 위해 어떤 언어를 선택해야합니까?Apr 21, 2025 am 12:17 AM

Python 또는 C를 선택하는 것은 프로젝트 요구 사항에 따라 다릅니다. 1) 빠른 개발, 데이터 처리 및 프로토 타입 설계가 필요한 경우 Python을 선택하십시오. 2) 고성능, 낮은 대기 시간 및 근접 하드웨어 제어가 필요한 경우 C를 선택하십시오.

파이썬 목표에 도달 : 매일 2 시간의 힘파이썬 목표에 도달 : 매일 2 시간의 힘Apr 20, 2025 am 12:21 AM

매일 2 시간의 파이썬 학습을 투자하면 프로그래밍 기술을 효과적으로 향상시킬 수 있습니다. 1. 새로운 지식 배우기 : 문서를 읽거나 자습서를 시청하십시오. 2. 연습 : 코드를 작성하고 완전한 연습을합니다. 3. 검토 : 배운 내용을 통합하십시오. 4. 프로젝트 실무 : 실제 프로젝트에서 배운 것을 적용하십시오. 이러한 구조화 된 학습 계획은 파이썬을 체계적으로 마스터하고 경력 목표를 달성하는 데 도움이 될 수 있습니다.

See all articles

핫 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 옷 제거제

Video Face Swap

Video Face Swap

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구