작성자 별 이미지
초보자 프로그래머는 단순성과 읽기 쉬운 구문으로 인해 Python 코딩을 즐깁니다. 그러나 효율적인 Python 코드를 작성하는 것은 생각보다 복잡합니다. 이를 위해서는 언어의 일부 기능에 대한 이해가 필요합니다(하지만 배우기도 간단합니다).
C++ 또는 JavaScript와 같은 다른 프로그래밍 언어를 사용하는 경우 이 튜토리얼을 통해 Python에서 효율적인 코드를 작성하는 데 필요한 몇 가지 팁을 배울 수 있습니다. 그러나 Python을 첫 번째 (프로그래밍) 언어로 배우는 초보자라면 이 튜토리얼이 처음부터 Python 코드를 작성하는 데 도움이 될 것입니다.
우리는 다음에 중점을 둘 것입니다:
- 파이썬 루프
- 목록 및 사전 이해
- 컨텍스트 관리자
- 발전기
- 컬렉션 클래스
그럼 본격적으로 들어가 볼까요!
프로그래밍하는 언어에 관계없이 루프 구성을 이해하는 것이 중요합니다. C++ 또는 JavaScript와 같은 언어를 사용하는 경우 Python 루프 작성 방법을 배우는 것이 도움이 됩니다.
범위가 있는 숫자 시퀀스 생성
XNUMXD덴탈의 range()
함수는 루프에서 반복자로 자주 사용되는 일련의 숫자를 생성합니다.
XNUMXD덴탈의 range()
함수는 기본적으로 0부터 시작하여 지정된 숫자까지(포함하지 않음) 범위 개체를 반환합니다.
다음 예는 다음과 같습니다
for i in range(5): print(i)
Output >>> 0
1
2
3
4
를 사용할 때 range()
기능을 사용하면 필요에 따라 시작점, 끝점 및 단계 크기를 사용자 정의할 수 있습니다.
열거를 사용하여 인덱스와 항목 모두에 액세스
XNUMXD덴탈의 enumerate()
함수는 iterable에 있는 각 요소의 인덱스와 값을 모두 원할 때 유용합니다.
이 예에서는 인덱스를 사용하여 fruits
명부:
fruits = ["apple", "banana", "cherry"] for i in range(len(fruits)): print(f"Index {i}: {fruits[i]}")
Output >>> Index 0: apple
Index 1: banana
Index 2: cherry
그러나 함께 enumerate()
함수를 사용하면 다음과 같이 인덱스와 요소에 모두 액세스할 수 있습니다.
fruits = ["apple", "banana", "cherry"] for i, fruit in enumerate(fruits): print(f"Index {i}: {fruit}")
Output >>> Index 0: apple
Index 1: banana
Index 2: cherry
zip을 사용하여 여러 Iterable에 대해 병렬로 반복
XNUMXD덴탈의 zip()
함수는 여러 반복 가능 항목을 병렬로 반복하는 데 사용됩니다. 서로 다른 반복 가능 항목의 해당 요소를 함께 쌍으로 연결합니다.
두 가지를 모두 반복해야 하는 다음 예를 고려하세요. names
및 scores
명부:
names = ["Alice", "Bob", "Charlie"]
scores = [95, 89, 78] for i in range(len(names)): print(f"{names[i]} scored {scores[i]} points.")
이 결과는 다음과 같습니다.
Output >>> Alice scored 95 points.
Bob scored 89 points.
Charlie scored 78 points.
다음은 훨씬 더 읽기 쉬운 루프입니다. zip()
기능:
names = ["Alice", "Bob", "Charlie"]
scores = [95, 89, 78] for name, score in zip(names, scores): print(f"{name} scored {score} points.")
Output >>> Alice scored 95 points.
Bob scored 89 points.
Charlie scored 78 points.
다음을 사용하는 Pythonic 버전 zip()
더 우아하고 수동 인덱싱이 필요하지 않으므로 코드가 더 깔끔하고 읽기 쉬워집니다.
Python에서 목록 이해와 사전 이해는 각각 목록과 사전을 생성하는 간결한 한 줄의 구문입니다. 또한 특정 조건에 따라 항목을 필터링하는 조건문을 포함할 수도 있습니다.
루프 버전부터 시작한 다음 목록과 사전 모두에 대한 이해 표현식으로 넘어가겠습니다.
Python의 목록 이해
가지고 있다고 말해 numbers
목록. 그리고 당신은 squared_numbers
목록. 다음과 같이 for 루프를 사용할 수 있습니다.
numbers = [1, 2, 3, 4, 5]
squared_numbers = [] for num in numbers: squared_numbers.append(num ** 2) print(squared_numbers)
Output >>> [1, 4, 9, 16, 25]
그러나 리스트 컴프리헨션은 이를 수행하기 위한 더 깨끗하고 간단한 구문을 제공합니다. iterable의 각 항목에 표현식을 적용하여 새 목록을 만들 수 있습니다.
목록 이해 구문 | 작성자별 이미지
다음은 목록 이해 표현식을 사용하는 간결한 대안입니다.
numbers = [1, 2, 3, 4, 5]
squared_numbers = [num ** 2 for num in numbers] print(squared_numbers)
Output >>> [1, 4, 9, 16, 25]
여기서 목록 이해는 각 숫자의 제곱을 포함하는 새 목록을 만듭니다. numbers
명부.
조건부 필터링을 사용한 목록 이해
목록 이해 표현식 내에 필터링 조건을 추가할 수도 있습니다. 다음 예를 고려하십시오.
numbers = [1, 2, 3, 4, 5]
odd_numbers = [num for num in numbers if num % 2 != 0] print(odd_numbers)
Output >>> [1, 3, 5]
이 예에서 목록 이해는 홀수만 포함하는 새 목록을 만듭니다. numbers
명부.
Python의 사전 이해
목록 이해와 유사한 구문을 사용하면 사전 이해를 사용하면 기존 반복 가능 항목에서 사전을 만들 수 있습니다.
사전 이해 구문 | 작성자별 이미지
가지고 있다고 말해 fruits
목록. 다음을 사용하여 사전을 만들고 싶습니다. fruit:len(fruit)
키-값 쌍.
for 루프를 사용하여 이 작업을 수행하는 방법은 다음과 같습니다.
fruits = ["apple", "banana", "cherry", "date"]
fruit_lengths = {} for fruit in fruits: fruit_lengths[fruit] = len(fruit) print(fruit_lengths)
Output >>> {'apple': 5, 'banana': 6, 'cherry': 6, 'date': 4}
이제 사전 이해에 해당하는 내용을 작성해 보겠습니다.
fruits = ["apple", "banana", "cherry", "date"]
fruit_lengths = {fruit: len(fruit) for fruit in fruits} print(fruit_lengths)
Output >>> {'apple': 5, 'banana': 6, 'cherry': 6, 'date': 4}
이 사전 이해는 키가 과일이고 값이 과일 이름의 길이인 사전을 생성합니다.
조건부 필터링을 사용한 사전 이해
조건을 포함하도록 사전 이해 표현식을 수정해 보겠습니다.
fruits = ["apple", "banana", "cherry", "date"]
long_fruit_names = {fruit: len(fruit) for fruit in fruits if len(fruit) > 5} print(long_fruit_names)
Output >>> {'banana': 6, 'cherry': 6}
여기서 사전 이해는 과일 이름을 키로, 길이를 값으로 사용하여 사전을 생성하지만 이름이 5자보다 긴 과일에 대해서만 생성됩니다.
Python의 컨텍스트 관리자는 리소스를 효율적으로 관리하는 데 도움이 됩니다. 컨텍스트 관리자를 사용하면 리소스를 쉽게 설정하고 해제(정리)할 수 있습니다. 컨텍스트 관리자의 가장 간단하고 일반적인 예는 파일 처리입니다.
아래 코드 조각을 살펴보세요.
filename = 'somefile.txt'
file = open(filename,'w')
file.write('Something')
리소스 누출로 인해 파일 설명자를 닫지 않습니다.
print(file.closed)
Output >>> False
아마도 다음과 같은 생각이 떠오를 것입니다.
filename = 'somefile.txt'
file = open(filename,'w')
file.write('Something')
file.close()
이는 설명자를 닫으려고 시도하는 동안 쓰기 작업 중에 발생할 수 있는 오류를 설명하지 않습니다.
이제 예외 처리를 구현하여 오류 없이 파일을 열고 무언가를 쓸 수 있습니다.
filename = 'somefile.txt'
file = open(filename,'w')
try: file.write('Something')
finally: file.close()
그러나 이것은 장황하다. 이제 다음 버전을 사용하여 살펴보세요. with
지지하는 진술 open()
컨텍스트 관리자인 함수:
filename = 'somefile.txt'
with open(filename, 'w') as file: file.write('Something') print(file.closed)
Output >>> True
우리는을 사용하여 with
파일이 열리는 컨텍스트를 생성하는 명령문입니다. 이렇게 하면 실행이 종료될 때 파일이 제대로 닫히게 됩니다. with
블록 - 작업 중에 예외가 발생하더라도 마찬가지입니다.
생성기는 대규모 데이터 세트 또는 무한 시퀀스를 작업할 수 있는 우아한 방법을 제공하여 코드 효율성을 향상시키고 메모리 소비를 줄입니다.
발전기란 무엇입니까?
제너레이터는 다음을 사용하는 함수입니다. yield
호출 사이에 내부 상태를 유지하면서 한 번에 하나씩 값을 반환하는 키워드입니다. 모든 값을 한 번에 계산하고 전체 목록을 반환하는 일반 함수와 달리 생성기는 요청 시 즉시 값을 계산하고 생성하므로 대규모 시퀀스를 처리하는 데 적합합니다.
발전기는 어떻게 작동합니까?
작성자 별 이미지
생성기가 어떻게 작동하는지 알아봅시다:
- 생성기 함수는 일반 함수처럼 정의되지만,
return
키워드, 당신은 사용할 것입니다yield
값을 산출합니다. - 생성기 함수를 호출하면 생성기 개체가 반환됩니다. 루프를 사용하거나 호출하여 반복할 수 있습니다.
next()
. - 때
yield
문이 발생하면 함수의 상태가 저장되고 생성된 값이 호출자에게 반환됩니다. 함수의 실행은 일시 중지되지만 해당 지역 변수와 상태는 유지됩니다. - 발전기의 경우
next()
메서드가 다시 호출되고, 일시 중지된 지점부터 실행이 다시 시작되며, 함수는 다음 메서드까지 계속됩니다.yield
성명서. - 함수가 종료되거나 a가 발생하는 경우
StopIteration
예외가 발생하면 생성기는 소진된 것으로 간주되며 추가 호출은 다음과 같습니다.next()
올릴 것이다StopIteration
.
생성기 생성
생성기 함수나 생성기 표현식을 사용하여 생성기를 생성할 수 있습니다.
다음은 생성기 함수의 예입니다.
def countdown(n): while n > 0: yield n n -= 1 # Using the generator function
for num in countdown(5): print(num)
Output >>> 5 4 3 2 1
생성기 표현식은 목록 이해와 유사하지만 목록 대신 생성기를 생성합니다.
# Generator expression to create a sequence of squares
squares = (x ** 2 for x in range(1, 6)) # Using the generator expression
for square in squares: print(square)
Output >>> 1 4 9 16 25
두 가지 유용한 컬렉션 클래스에 대해 알아보고 튜토리얼을 마무리하겠습니다.
- NamedTuple
- 계수기
NamedTuple을 사용하여 더 읽기 쉬운 튜플
Python에서 명명된 튜플 FBI 증오 범죄 보고서 컬렉션 모듈 내장 튜플 클래스의 하위 클래스입니다. 그러나 명명된 필드를 제공합니다. 이는 일반 튜플보다 더 읽기 쉽고 자체 문서화가 가능합니다.
다음은 3D 공간의 한 점에 대한 간단한 튜플을 만들고 개별 요소에 액세스하는 예입니다.
# 3D point tuple
coordinate = (1, 2, 3) # Accessing data using tuple unpacking x, y, z = coordinate
print(f"X-coordinate: {x}, Y-coordinate: {y}, Z-coordinate: {z}")
Output >>> X-coordinate: 1, Y-coordinate: 2, Z-coordinate: 3
그리고 네임드튜플 버전은 다음과 같습니다:
from collections import namedtuple # Define a Coordinate3D namedtuple
Coordinate3D = namedtuple("Coordinate3D", ["x", "y", "z"]) # Creating a Coordinate3D object
coordinate = Coordinate3D(1, 2, 3) print(coordinate) # Accessing data using named fields
print(f"X-coordinate: {coordinate.x}, Y-coordinate: {coordinate.y}, Z-coordinate: {coordinate.z}")
Output >>> Coordinate3D(x=1, y=2, z=3)
X-coordinate: 1, Y-coordinate: 2, Z-coordinate: 3
따라서 NamedTuples를 사용하면 일반 튜플보다 더 깔끔하고 유지 관리하기 쉬운 코드를 작성할 수 있습니다.
카운터를 사용하여 계산 단순화
계수기 의 클래스입니다 컬렉션 모듈 이는 목록이나 문자열과 같은 iterable의 요소 빈도를 계산하기 위해 설계되었습니다. 다음을 사용하여 Counter 객체를 반환합니다. {element:count}
키-값 쌍.
긴 문자열에서 문자 빈도를 계산하는 예를 들어 보겠습니다.
루프를 사용하여 문자 빈도를 계산하는 일반적인 접근 방식은 다음과 같습니다.
word = "incomprehensibilities" # initialize an empty dictionary to count characters
char_counts = {} # Count character frequencies
for char in word: if char in char_counts: char_counts[char] += 1 else: char_counts[char] = 1 # print out the char_counts dictionary
print(char_counts) # find the most common character
most_common = max(char_counts, key=char_counts.get) print(f"Most Common Character: '{most_common}' (appears {char_counts[most_common]} times)")
문자열을 수동으로 반복하고 사전을 업데이트하여 문자 빈도를 계산하고 가장 일반적인 문자를 찾습니다.
Output >>> {'i': 5, 'n': 2, 'c': 1, 'o': 1, 'm': 1, 'p': 1, 'r': 1, 'e': 3, 'h': 1, 's': 2, 'b': 1, 'l': 1, 't': 1} Most Common Character: 'i' (appears 5 times)
이제 다음 구문을 사용하여 Counter 클래스를 사용하여 동일한 작업을 수행해 보겠습니다. Counter(iterable)
:
from collections import Counter word = "incomprehensibilities" # Count character frequencies using Counter
char_counts = Counter(word) print(char_counts) # Find the most common character
most_common = char_counts.most_common(1) print(f"Most Common Character: '{most_common[0][0]}' (appears {most_common[0][1]} times)")
Output >>> Counter({'i': 5, 'e': 3, 'n': 2, 's': 2, 'c': 1, 'o': 1, 'm': 1, 'p': 1, 'r': 1, 'h': 1, 'b': 1, 'l': 1, 't': 1})
Most Common Character: 'i' (appears 5 times)
So Counter
수동 반복 및 사전 관리 없이 문자 빈도를 계산하는 훨씬 간단한 방법을 제공합니다.
Python 도구 상자에 추가할 수 있는 몇 가지 유용한 팁을 찾았기를 바랍니다. Python을 배우고 싶거나 코딩 인터뷰를 준비하고 있다면 다음과 같은 여정에 도움이 되는 몇 가지 리소스를 참조하세요.
행복한 학습!
발라 프리야 C 인도 출신의 개발자이자 테크니컬 라이터입니다. 그녀는 수학, 프로그래밍, 데이터 과학 및 콘텐츠 제작의 교차점에서 일하는 것을 좋아합니다. 그녀의 관심 분야와 전문 분야는 DevOps, 데이터 과학 및 자연어 처리입니다. 그녀는 읽기, 쓰기, 코딩, 커피를 즐깁니다! 현재 그녀는 자습서, 사용 방법 가이드, 의견 등을 작성하여 개발자 커뮤니티와 지식을 배우고 공유하는 작업을 하고 있습니다.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- PlatoData.Network 수직 생성 Ai. 자신에게 권한을 부여하십시오. 여기에서 액세스하십시오.
- PlatoAiStream. 웹3 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 플라톤ESG. 탄소, 클린테크, 에너지, 환경, 태양광, 폐기물 관리. 여기에서 액세스하십시오.
- PlatoHealth. 생명 공학 및 임상 시험 인텔리전스. 여기에서 액세스하십시오.
- 출처: https://www.kdnuggets.com/how-to-write-efficient-python-code-a-tutorial-for-beginners?utm_source=rss&utm_medium=rss&utm_campaign=how-to-write-efficient-python-code-a-tutorial-for-beginners
- :이다
- :아니
- :어디
- ][피
- $UP
- 1
- 10
- 11
- 12
- 14
- 16
- 17
- 20
- 25
- 3d
- 7
- 8
- 9
- a
- 소개
- ACCESS
- 액세스
- 계정
- 달성
- 더하다
- 다시
- 앨리스
- All
- 수
- 수
- 또한
- 대안
- an
- 및
- 다른
- 어떤
- 등장하다
- Apple
- 적용
- 접근
- 있군요
- 지역
- 발생
- AS
- At
- 시도
- 저작
- b
- 바나나
- 기반으로
- 때문에
- 초급
- 이하
- 사이에
- 곡물
- 두
- 내장
- 비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만
- by
- C + +
- 전화
- 라는
- 방문객
- 부름
- 통화
- CAN
- 어떤
- 문자
- 문자
- 백인
- 수업
- 수업
- 황어 무리
- 청소기
- 닫기
- 닫은
- 암호
- 코딩
- 수집
- 컬렉션
- 왔다
- 오는
- 공통의
- 커뮤니티
- 완전한
- 계산
- 간결한
- 조건
- 조건부의
- 조건
- 고려
- 고려
- 구성
- 소비
- 함유량
- 콘텐츠 제작
- 문맥
- 계속
- 전통적인
- 좌표의
- 동
- 계수기
- 세는
- 두
- 만들
- 생성
- 만들기
- 창조
- 현재
- 사용자 정의
- 데이터
- 데이터 과학
- 데이터 세트
- 날짜
- 태만
- 밝히다
- 한정된
- 설계
- 개발자
- 개발자
- 다른
- 잠수
- do
- 하지
- 들린
- 아래 (down)
- ...동안
- e
- 마다
- 용이하게
- 효율성
- 효율적인
- 효율적으로
- 중
- 요소
- 요소
- 그렇지 않으면
- 빈
- 종결
- 즐겨
- 보장
- 동등한
- 오류
- 에테르 (ETH)
- 예
- 예외
- 실행
- 현존하는
- 이탈
- 전문적 지식
- 표현
- 표현
- 특징
- 를
- Fields
- 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에
- 필터링
- 필터링
- 최종적으로
- Find
- 먼저,
- 초점
- 수행원
- 럭셔리
- 발견
- 진동수
- 에
- 과일
- 기능
- 기능
- 추가
- 생성
- 발전기
- 발전기
- 얻을
- Go
- 간다
- 구글
- 안내서
- 처리
- 있다
- 도움
- 도움이
- 그녀의
- 여기에서 지금 확인해 보세요.
- 기대
- 방법
- How To
- 그러나
- HTTPS
- i
- if
- 영상
- 구현
- import
- 중대한
- in
- 포함
- 색인
- 인도
- 개인
- 를 받아야 하는 미국 여행자
- 관심
- 내부의
- 교차
- 인터뷰
- 으로
- 참여
- IT
- 항목
- 되풀이
- 그
- 자바 스크립트
- 여행
- 다만
- 너 겟츠
- 키
- 키워드는
- 지식
- 언어
- 언어
- 넓은
- 배우다
- 배우기
- 하자
- 처럼
- 좋아하는
- 명부
- 기울기
- 지방의
- 긴
- 이상
- 보기
- 찾고
- 유지보수 가능
- 제작
- 유튜브 영상을 만드는 것은
- 관리
- 구축
- 매니저
- 관리자
- 조작
- 수동으로
- math
- XNUMX월..
- 메모리
- 방법
- 수정
- 배우기
- 가장
- 움직임
- 많은
- 여러
- name
- 이름
- 이름
- 자연의
- 자연어
- 자연 언어 처리
- 필요
- 필요
- 신제품
- 다음 것
- 지금
- 번호
- 숫자
- 대상
- of
- 자주
- on
- 일단
- ONE
- 만
- 열 수
- 오픈
- 조작
- 의견
- or
- 우리의
- 아웃
- 출력
- 출력
- 위에
- 쌍
- 평행
- 일시 중지 된
- 선택
- 개
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 포인트 적립
- 전철기
- 준비
- 보존
- 인쇄
- 아마
- 처리
- 프로그래머
- 프로그램 작성
- 정확히
- 제공
- 제공
- Python
- R
- 모집
- 높인
- 제기
- 범위
- 읽기
- 감소
- 관계없이
- 정규병
- 요청하신
- 필요
- 의지
- 제품 자료
- 결과
- return
- 반품
- s
- 같은
- 저장
- 과학
- 점수
- 점수
- 순서
- 세트
- 공유
- 그녀
- 비슷한
- 단순, 간단, 편리
- 간단
- 간단
- 단순화
- 크기
- 단편
- So
- 일부
- 무언가
- 스페이스 버튼
- 지정
- 광장
- 사각형
- 스타트
- 시작 중
- 시작
- 주 정부
- 성명서
- 문
- 단계
- 끈
- 이러한
- 적당한
- 지원
- 구문
- T
- 받아
- 가볍게 두드리다
- 태스크
- 테크니컬
- 보다
- 그
- XNUMXD덴탈의
- 그들의
- 그들
- 그때
- 따라서
- 그들
- 생각
- 이
- 그래도?
- 을 통하여
- 시간
- 시대
- 도움말
- 에
- 함께
- 도구 상자
- 시도
- 지도 시간
- 자습서
- 두
- 이해
- 같지 않은
- 포장 풀기
- 까지
- 업데이트
- 사용
- 익숙한
- 유용
- 사용
- 가치
- 마케팅은:
- 변수
- 버전
- W
- 필요
- 였다
- 방법..
- we
- 언제
- 어느
- 동안
- 의지
- 과
- 이내
- 없이
- 워드
- 작업
- 일하는
- 싸다
- 쓰다
- 작가
- 쓰기
- X
- 수율
- 굴복
- 당신
- 너의
- 제퍼 넷