그만큼 목록 다른 언어의 배열과 동일하며 크기가 동적이라는 추가 이점이 있습니다.
~ 안에 파이썬 , 목록은 동시에 여러 데이터를 저장하는 데 사용되는 데이터 구조의 컨테이너 유형입니다. 같지 않은 세트 , Python의 목록은 순서가 지정되어 있으며 명확한 개수를 갖습니다. 이 기사에서는 Python에서 목록을 반복하는 방법과 문자열 목록을 통해 Python 루프를 반복하는 방법을 살펴보겠습니다.
Python 목록 반복
Python에서 목록을 반복하는 다양한 방법과 이들 간의 성능 비교를 살펴보겠습니다.
- 사용 for 루프
- for 루프 사용 및 범위()
- 사용하여 while 루프
- 사용 목록 이해
- 사용 낱낱이 세다() 방법
- 사용하여 iter 함수 그리고 다음 기능
- 사용하여 지도() 함수
- zip() 함수 사용
- 사용 넘파이 기준 치수
For 루프를 사용하여 목록 반복
간단한 방법을 사용하여 Python에서 목록을 반복할 수 있습니다. For 루프 .
파이썬3
# Python3 code to iterate over a list> list> => [> 1> ,> 3> ,> 5> ,> 7> ,> 9> ]> > # Using for loop> for> i> in> list> :> > print> (i)> |
>
>산출
1 3 5 7 9>
시간 복잡도: O(n) – 여기서 n은 목록의 요소 수입니다.
보조 공간: O(1) – 추가 공간을 사용하지 않기 때문입니다.
f를 사용하여 목록을 반복합니다. 또는 루프 및 범위()
숫자 x에서 숫자 y까지 반복하는 전통적인 for 루프를 사용하려는 경우입니다.
파이썬3
# Python3 code to iterate over a list> list> => [> 1> ,> 3> ,> 5> ,> 7> ,> 9> ]> > # getting length of list> length> => len> (> list> )> > # Iterating the index> # same as 'for i in range(len(list))'> for> i> in> range> (length):> > print> (> list> [i])> |
>
>산출
1 3 5 7 9>
시간 복잡도: O(n), 여기서 n은 입력 목록의 길이입니다.
보조 공간: O(1), 이는 상수 공간입니다.
다음을 사용하여 Python에서 목록을 반복합니다. 잠시 루프
또한 다음을 사용하여 Python 목록을 반복할 수도 있습니다. while 루프 .
파이썬3
# Python3 code to iterate over a list> list> => [> 1> ,> 3> ,> 5> ,> 7> ,> 9> ]> > # Getting length of list> i> => 0> > # Iterating using while loop> while> i <> len> (> list> ):> > print> (> list> [i])> > i> +> => 1> |
>
>산출
1 3 5 7 9>
시간 복잡도: O(n) 여기서 n은 목록의 길이입니다.
보조 공간: O(1)은 변수 i와 길이에 일정한 양의 추가 공간만 사용되기 때문입니다.
다음을 사용하여 목록을 반복합니다. 목록 이해
우리는 사용할 수 있습니다 목록 이해 (아마도 가장 구체적인 방법) Python에서 목록을 반복하는 방법입니다.
파이썬3
# Python3 code to iterate over a list> list> => [> 1> ,> 3> ,> 5> ,> 7> ,> 9> ]> > # Using list comprehension> [> print> (i)> for> i> in> list> ]> |
>
>산출
1 3 5 7 9>
enumerate()를 사용하여 Python에서 목록을 반복합니다.
목록을 반복 가능한 튜플 목록으로 변환하려는 경우(또는 선형 검색에서 조건 확인을 기반으로 인덱스를 가져오려면 최소 요소의 인덱스를 저장해야 할 수 있음) 다음을 사용할 수 있습니다. 열거() 함수 .
파이썬3
# Python3 code to iterate over a list> list> => [> 1> ,> 3> ,> 5> ,> 7> ,> 9> ]> > # Using enumerate()> for> i, val> in> enumerate> (> list> ):> > print> (i,> ','> ,val)> |
>
문자열 ti int
>산출
0 , 1 1 , 3 2 , 5 3 , 7 4 , 9>
메모: 방법 2도 인덱스를 찾는 데 사용할 수 있지만 방법 1은 할 수 없으며(추가 변수가 매 반복마다 증가하지 않는 한) 방법 5는 이 인덱싱을 간결하게 표현합니다.
iter 함수와 next 함수를 사용하여 Python에서 목록을 반복합니다.
다음은 iter 함수와 next 함수를 사용하는 추가 접근 방식입니다.
파이썬3
# Python3 code to iterate over a list> list> => [> 1> ,> 3> ,> 5> ,> 7> ,> 9> ]> # Create an iterator object using the iter function> iterator> => iter> (> list> )> # Use the next function to retrieve the elements of the iterator> try> :> > while> True> :> > element> => next> (iterator)> > print> (element)> except> StopIteration:> > pass> |
>
>산출
1 3 5 7 9>
시간 복잡도: 에)
보조 공간: 오(1)
map() 함수를 사용하여 Python에서 목록을 반복합니다.
사용 지도() 리스트의 각 요소에 함수를 적용하는 함수입니다.
파이썬3
# Define a function to print each element> def> print_element(element):> > print> (element)> # Create a list> my_list> => [> 1> ,> 3> ,> 5> ,> 7> ,> 9> ]> # Use map() to apply the print_element() function to each element of the list> result> => map> (print_element, my_list)> # Since map() returns an iterator, we need to consume> # the iterator in order to see the output> for> _> in> result:> > pass> |
>
>산출
1 3 5 7 9>
시간 복잡도: O(n), 여기서 n은 목록의 길이입니다.
보조 공간: 오(1)
Python은 zip() 함수를 사용하여 여러 목록을 반복합니다.
이 예에서는 zip() 함수를 사용하여 두 목록 list1 및 list2의 요소를 동시에 반복하고 후속 인쇄를 위해 해당 요소를 튜플로 함께 쌍을 이룹니다.
파이썬3
list1> => [> 1> ,> 2> ,> 3> ]> list2> => [> 'p'> ,> 'q'> ,> 'r'> ]> # Using zip() to iterate over multiple lists simultaneously> for> i1, i2> in> zip> (list1, list2):> > print> (f> '{i1} ->{i2}'> )> |
>
>산출
1 ->p 2 -> q 3 -> r>
NumPy를 사용하여 Python에서 목록 반복
매우 큰 n차원 목록(예: 이미지 배열)의 경우 다음과 같은 외부 라이브러리를 사용하는 것이 더 나을 때도 있습니다. 멍청하다 . np를 사용할 수 있습니다. enumerate()는 열거 동작을 모방합니다. NumPy의 추가 기능은 요소를 방문하는 방법(예: C 순서가 아닌 Fortran 순서)을 제어할 수도 있다는 사실에서 비롯됩니다. 그러나 한 가지 주의할 점은 np.nditer가 배열을 읽기 전용으로 처리한다는 것입니다. 기본값이므로 요소를 수정할 수 있으려면 op_flags=['readwrite']와 같은 추가 플래그를 전달해야 합니다.
파이썬3
import> numpy as geek> # creating an array using> # arrange method> a> => geek.arange(> 9> )> # shape array with 3 rows> # and 4 columns> a> => a.reshape(> 3> ,> 3> )> # iterating an array> for> x> in> geek.nditer(a):> > print> (x)> |
>
>
산출:
0 1 2 3 4 5 6 7 8>
시간 복잡도: 에)
보조 공간: 오(1)