logo

Python의 반복 기술

Python은 다양한 순차 컨테이너에 내장된 특정 함수를 통해 다양한 루핑 기술을 지원합니다. 이러한 방법은 주로 경쟁적인 프로그래밍과 코드의 전체 구조를 유지하는 루프가 있는 특정 기술이 필요한 다양한 프로젝트에서 매우 유용합니다.  전통적인 루프 접근 방식에서 선언하는 추가 변수를 선언할 필요가 없으므로 많은 시간과 메모리 공간이 절약됩니다.

어디에 사용되나요?

다양한 루핑 기술은 전체 컨테이너의 구조와 순서를 실제로 조작할 필요가 없고 컨테이너에서 내부 변경이 발생하지 않는 일회용 인스턴스에 대한 요소만 인쇄할 필요가 없는 위치에서 주로 유용합니다. 이는 시간을 절약하기 위해 인스턴스에 사용될 수도 있습니다.

Python 데이터 구조를 사용하는 다양한 루프 기술은 다음과 같습니다.  

방법 1: enumerate() 사용:   enumerate()는 특정 인덱스에 존재하는 값과 함께 인덱스 번호를 인쇄하는 컨테이너를 반복하는 데 사용됩니다.



Python3
# python code to demonstrate working of enumerate() for key value in enumerate(['The' 'Big' 'Bang' 'Theory']): print(key value) 

산출:

자바스크립트 if 문
0 The  
1 Big
2 Bang
3 Theory
Python3
# python code to demonstrate working of enumerate() for key value in enumerate(['Geeks' 'for' 'Geeks' 'is' 'the' 'Best' 'Coding' 'Platform']): print(value end=' ') 

산출:

Geeks for Geeks is the Best Coding Platform 

방법 2: zip() 사용:  zip()은 값을 순차적으로 인쇄하는 2개 이상의 컨테이너를 결합하는 데 사용됩니다. 루프는 더 작은 컨테이너가 끝날 때까지만 존재합니다. zip() 및 enumerate()에 대한 자세한 설명을 찾을 수 있습니다. 여기 .

예시 1: 두 가지 다른 데이터 유형(listtuple)

Python
# python code to demonstrate working of zip() names = ['Deep' 'Sachin' 'Simran'] # list ages = (24 27 25) # tuple for name age in zip(names ages): print('Name: ' name) print('Age: ' age) print() 

산출
('Name: ' 'Deep') ('Age: ' 24) () ('Name: ' 'Sachin') ('Age: ' 27) () ('Name: ' 'Simran') ('Age: ' 25) () 

예 2: 두 개의 유사한 데이터 유형 list-list

Python3
# python code to demonstrate working of zip() # initializing list questions = ['name' 'colour' 'shape'] answers = ['apple' 'red' 'a circle'] # using zip() to combine two containers # and print values for question answer in zip(questions answers): print('What is your {0}? I am {1}.'.format(question answer)) 

산출:

메모리 등록
What is your name? I am apple.  
What is your color? I am red.
What is your shape? I am a circle.

방법 3: iteritem() 사용:  iteritems()는 Python 3 버전 이전에 사용된 사전 키-값 쌍을 순차적으로 인쇄하여 사전을 반복하는 데 사용됩니다.

방법 4: items() 사용: items()는 iteritems()와 비슷한 사전 작업을 수행하지만 iteritems()와 비교할 때 몇 가지 단점이 있습니다.

  • 그것은 매우 시간이 많이 소요되는 . 큰 사전에서 호출하는 것은 꽤 많은 시간을 소비합니다.
  • 소요되는 시간 많은 기억 . 때로는 사전을 호출할 때 메모리를 두 배로 사용하기도 합니다.

예시 1:

Python3
# python code to demonstrate working of items() d = {'geeks': 'for' 'only': 'geeks'} # iteritems() is renamed to items() in python3 # using items to print the dictionary key-value pair print('The key value pair using items is : ') for i j in d.items(): print(i j) 

산출:

The key value pair using iteritems is :   
geeks for
only geeks

예 2:

Python3
# python code to demonstrate working of items() king = {'Ashoka': 'The Great' 'Chandragupta': 'The Maurya' 'Modi': 'The Changer'} # using items to print the dictionary key-value pair for key value in king.items(): print(key value) 

산출
Ashoka The Great Chandragupta The Maurya Modi The Changer 

방법 5: sorted() 사용:   sorted()를 사용하여 인쇄합니다. 컨테이너는 정렬된 순서로 정렬됩니다. . 그것 컨테이너를 정렬하지 않습니다 하지만 1개의 인스턴스에 대해 정렬된 순서로 컨테이너를 인쇄합니다. 사용 set()을 결합하여 중복을 제거할 수 있습니다. 발생.

예시 1:

Python3
# python code to demonstrate working of sorted() # initializing list lis = [1 3 5 6 2 1 3] # using sorted() to print the list in sorted order print('The list in sorted order is : ') for i in sorted(lis): print(i end=' ') print('r') # using sorted() and set() to print the list in sorted order # use of set() removes duplicates. print('The list in sorted order (without duplicates) is : ') for i in sorted(set(lis)): print(i end=' ') 

산출:

    The li   st in sorted order is :   
1 1 2 3 3 5 6
The list in sorted order (without duplicates) is :
1 2 3 5 6

예 2:

Python3
# python code to demonstrate working of sorted() # initializing list basket = ['guave' 'orange' 'apple' 'pear' 'guava' 'banana' 'grape'] # using sorted() and set() to print the list # in sorted order for fruit in sorted(set(basket)): print(fruit) 

산출:

apple  
banana
grape
guava
guave
orange
pear

방법 6: reverse() 사용:  reversed()는 값을 인쇄하는 데 사용됩니다. 그만큼 컨테이너를 반대 순서로 . 원래 목록의 변경 사항은 반영되지 않습니다.

메모리 교환

예시 1:

Python3
# python code to demonstrate working of reversed() # initializing list lis = [1 3 5 6 2 1 3] # using reversed() to print the list in reversed order print('The list in reversed order is : ') for i in reversed(lis): print(i end=' ') 

산출:

The list in reversed order is :   
3 1 2 6 5 3 1

예 2:

Python3
# python code to demonstrate working of reversed() # using reversed() to print in reverse order for i in reversed(range(1 10 3)): print(i) 

산출:

자바 현지 날짜
7  
4
1
  • 이러한 기술은 사용이 빠르고 코딩 작업이 줄어듭니다. for while 루프에서는 컨테이너의 전체 구조를 변경해야 합니다.
  • 이러한 루핑 기술에는 컨테이너의 구조적 변경이 필요하지 않습니다. 정확한 사용 목적을 나타내는 키워드가 있습니다. for while 루프에서는 사전 예측이나 추측을 할 수 없습니다. 즉, 목적을 한 눈에 쉽게 이해할 수 없습니다.
  • 루프 기법을 사용하면 for & while 루프를 사용하는 것보다 코드가 더 간결해집니다.

if 문을 사용하여 while 루프를 반복하는 기술:

이 예에서는 while 루프를 사용하여 count라는 변수를 증가시킵니다. 루프 내에서 if 문을 사용하여 count가 3인지 확인합니다. 그렇다면 메시지를 인쇄합니다.

접근하다:

카운트 변수를 0으로 초기화
count가 5보다 작은 경우 while 루프를 사용하여 코드 블록을 반복적으로 실행합니다.
루프 내에서 if 문을 사용하여 count가 3인지 확인합니다.
개수가 3이면 메시지를 인쇄합니다.
각 반복이 끝날 때마다 개수를 1씩 증가시킵니다.

Python3
# Example variable count = 0 # Loop while count is less than 5 while count < 5: if count == 3: print('Count is 3') count += 1 

산출
Count is 3


시간 복잡도: O(n) 여기서 n은 개수가 5에 도달하는 데 필요한 반복 횟수입니다.

보조 공간: 코드 전체에서 하나의 변수(개수)만 사용되므로 O(1)입니다.

퀴즈 만들기