for
루프 에서 인덱스에 어떻게 액세스 합니까?
xs = [8, 23, 45]
for x in xs:
print("item #{} = {}".format(index, x))
원하는 출력:
item #1 = 8
item #2 = 23
item #3 = 45
for
루프 에서 인덱스에 어떻게 액세스 합니까?
xs = [8, 23, 45]
for x in xs:
print("item #{} = {}".format(index, x))
원하는 출력:
item #1 = 8
item #2 = 23
item #3 = 45
내장 함수 사용 enumerate()
:
for idx, x in enumerate(xs):
print(idx, x)
추가 상태 변수 를 통해 수동으로 인덱싱 하거나 수동으로 관리하는 것은 비파이썬 적입니다.for i in range(len(xs)): x = xs[i]
자세한 내용은 PEP 279 를 확인하십시오 .
for 루프를 사용하여 이 경우 1에서 5까지 루프 인덱스에 어떻게 액세스합니까?
enumerate
반복할 때 요소가 있는 인덱스를 가져오는 데 사용 합니다.
for index, item in enumerate(items):
print(index, item)
그리고 Python의 인덱스는 0에서 시작하므로 위와 같이 하면 0에서 4가 됩니다. 1부터 5까지의 개수를 원하면 다음을 수행하십시오.
count = 0 # in case items is empty and you need it after the loop
for count, item in enumerate(items, start=1):
print(count, item)
당신이 요구하는 것은 저수준 언어의 대부분의 프로그래머가 사용하는 알고리즘인 다음과 같은 Pythonic입니다.
index = 0 # Python's indexing starts at zero
for item in items: # Python's for loops are a "for each" loop
print(index, item)
index += 1
또는 for-each 루프가 없는 언어에서:
index = 0
while index < len(items):
print(index, items[index])
index += 1
또는 때로는 Python에서 더 일반적으로(그러나 단조롭게) 발견됩니다.
for index in range(len(items)):
print(index, items[index])
Python의 enumerate
기능 은 인덱스에 대한 설명을 숨기고 iterable을 다른 iterable( enumerate
객체)로 캡슐화하여 인덱스와 원래 iterable이 제공할 항목의 2개 항목 튜플을 생성하여 시각적 혼란을 줄입니다. 다음과 같습니다.
for index, item in enumerate(items, start=0): # default is zero
print(index, item)
이 코드 샘플은 Python의 관용적 코드와 그렇지 않은 코드 간의 차이점에 대한 표준적인 예입니다. 관용적 코드는 사용 목적에 맞게 작성된 정교한(복잡하지 않은) Python입니다. 언어 설계자는 관용적 코드를 기대합니다. 이는 일반적으로 이 코드가 더 읽기 쉬울 뿐만 아니라 더 효율적임을 의미합니다.
진행하면서 인덱스가 필요하지 않지만 시작할 수 있는 반복 횟수(때로는 바람직함)가 필요 1
하고 최종 숫자가 카운트가 됩니다.
count = 0 # in case items is empty
for count, item in enumerate(items, start=1): # default is zero
print(item)
print('there were {0} items printed'.format(count))
개수는 1에서 5까지 원한다고 말했을 때 (색인과 달리) 요청하려는 것보다 더 많은 것 같습니다.
이러한 예를 분해하기 위해 인덱스로 반복하려는 항목 목록이 있다고 가정해 보겠습니다.
items = ['a', 'b', 'c', 'd', 'e']
이제 이 iterable을 enumerate에 전달하여 enumerate 객체를 생성합니다.
enumerate_object = enumerate(items) # the enumerate object
이 iterable에서 첫 번째 항목을 가져올 수 next
있습니다.
iteration = next(enumerate_object) # first iteration from enumerate
print(iteration)
0
그리고 첫 번째 인덱스와 'a'
첫 번째 항목 의 튜플을 얻습니다 .
(0, 'a')
이 2-튜플에서 요소를 추출하기 위해 " 시퀀스 언패킹 " 이라고 하는 것을 사용할 수 있습니다 .
index, item = iteration
# 0, 'a' = (0, 'a') # essentially this.
검사할 때 index
첫 번째 인덱스인 0을 item
참조하고 첫 번째 항목인 를 참조합니다 'a'
.
>>> print(index)
0
>>> print(item)
a
이렇게 하세요:
for index, item in enumerate(items, start=0): # Python indexes start at zero
print(index, item)
1
다음 이외 의 것에서 시작하는 것은 매우 간단합니다 0
.
for index, item in enumerate(iterable, start=1):
print index, item # Used to print in python<3.x
print(index, item) # Migrate to print() after 3.x+
[Python] @staticmethod와 @classmethod의 차이점 (0) | 2022.07.31 |
---|---|
[Python] 목록 목록에서 플랫 목록을 만드는 방법은 무엇입니까? (0) | 2022.07.31 |
[Python] 중첩된 디렉토리를 어떻게 안전하게 생성할 수 있습니까? (0) | 2022.07.31 |
[Python] 어떻게 프로그램을 실행하거나 시스템 명령을 호출합니까? (0) | 2022.07.31 |
[Python] 단일 표현식에서 두 개의 사전을 병합하려면 어떻게 해야 합니까? (0) | 2022.07.31 |