enumerate()는 무슨 뜻입니까?
무엇인가.for row_number, row in enumerate(cursor):
Python으로 할까요?
무엇인가.enumerate
이 문맥에서 무엇을 의미합니까?
이 함수는 반복 가능에 카운터를 추가합니다.
따라서 의 각 요소에 대해cursor
, 태플은 다음과 같이 제작됩니다.(counter, element)
; 그for
루프는 그것을 에 묶는다.row_number
그리고.row
,각각 다음과 같다.
데모:
>>> elements = ('foo', 'bar', 'baz')
>>> for elem in elements:
... print elem
...
foo
bar
baz
>>> for count, elem in enumerate(elements):
... print count, elem
...
0 foo
1 bar
2 baz
디폴트로는enumerate()
세기 시작하다0
두 번째 정수 인수를 지정하면 대신 해당 숫자에서 시작됩니다.
>>> for count, elem in enumerate(elements, 42):
... print count, elem
...
42 foo
43 bar
44 baz
재실현을 한다면enumerate()
Python에서는, 다음의 2개의 방법으로 계산하고 있습니다.하나는 카운팅에 사용하고, 다른 하나는 제너레이터 함수에서 수동으로 카운트합니다.
from itertools import count
def enumerate(it, start=0):
# return an iterator that adds a counter to each element of it
return zip(count(start), it)
그리고.
def enumerate(it, start=0):
count = start
for elem in it:
yield (count, elem)
count += 1
C의 실제 구현은 후자에 가까우며 단일 태플 객체를 공통적으로 재사용하도록 최적화된다.for i, ...
대소문자를 풀고 카운터가 너무 커져서 Python 정수 객체(무제한)를 사용하지 않도록 할 때까지 카운터에 표준 C 정수 값을 사용합니다.
반복할 수 있는 개체를 반환하는 기본 제공 함수입니다.메뉴얼을 참조해 주세요.
즉, 반복 가능한 요소(목록 등)와 인덱스 번호(태플)를 조합하여 루프합니다.
for item in enumerate(["a", "b", "c"]):
print item
인쇄하다
(0, "a")
(1, "b")
(2, "c")
시퀀스(또는 다른 반복 가능한 것)를 루프하고 인덱스 카운터를 사용할 수 있는 경우 유용합니다.카운터가 다른 값(통상은 1)에서 시작되도록 하려면 , 다음의 인수로 지정할 수 있습니다.enumerate
.
나는 Brett Slatkin의 책(Effective Python)을 읽고 있는데 그는 목록에 있는 현재 항목의 인덱스를 알고 있는 다른 방법을 보여주지만 그는 그것을 사용하지 않고 사용하는 것이 좋다고 제안한다.enumerate
대신.Enumerate가 무엇을 의미하는지 물어봤다는 것을 알지만, 내가 다음을 이해했을 때, 나는 또한 어떻게 이해했다.enumerate
현재 항목의 인덱스를 알면서도 목록을 반복할 수 있도록 합니다(가독성도 향상됩니다.
list_of_letters = ['a', 'b', 'c']
for i in range(len(list_of_letters)):
letter = list_of_letters[i]
print (i, letter)
출력은 다음과 같습니다.
0 a
1 b
2 c
나도 뭔가 하곤 했어 심지어 바보같은 짓도 했지enumerate
기능.
i = 0
for n in list_of_letters:
print (i, n)
i += 1
같은 출력이 생성됩니다.
단,enumerate
그냥 이렇게 쓰면 돼
list_of_letters = ['a', 'b', 'c']
for i, letter in enumerate(list_of_letters):
print (i, letter)
다른 사용자가 언급했듯이enumerate
는 반복 가능한 각 항목 옆에 증분 인덱스를 추가하는 생성기입니다.
리스트가 있으면l = ["test_1", "test_2", "test_3"]
,그list(enumerate(l))
다음과 같은 정보를 얻을 수 있습니다.[(0, 'test_1'), (1, 'test_2'), (2, 'test_3')]
.
자, 이게 언제 유용할까요?가능한 사용 사례는 항목에 대해 반복하려는 경우 목록에서 인덱스만 알고 값은 모르는 특정 항목을 건너뛸 수 있습니다(그 이유는 해당 값이 당시에는 알려지지 않았기 때문입니다.
for index, value in enumerate(joint_values):
if index == 3:
continue
# Do something with the other `value`
코드 이 더 잘 되는 는 정규 for 을 할 수 입니다. 「루프」의 「루프용」range
인덱스를 작성하기 (를 작성해야 합니다.)joint_values[i]
를 참조해 주세요.
사용자가 '하다', '하다', '', '', '하다'의 했지만,enumerate
를 사용합니다.zip
좀 더 더 itertools
def enumerate(l, start=0):
return zip(range(start, len(l) + start), l)
예:
l = ["test_1", "test_2", "test_3"]
enumerate(l)
enumerate(l, 10)
출력:
[(0, 'test_1', (1, 'test_2', 2, 'test_3')]
[(10, 'test_1'), (11, 'test_2'), (12, 'test_3'
와 같이, 이의 「Range」, 「Range」, 「Range」의 의 반복 가능성과는 .enumerate
능합니니다다
열거 함수는 다음과 같이 동작합니다.
doc = """I like movie. But I don't like the cast. The story is very nice"""
doc1 = doc.split('.')
for i in enumerate(doc1):
print(i)
출력은
(0, 'I like movie')
(1, " But I don't like the cast")
(2, ' The story is very nice')
일부 목록의 요소를 반복하는 방법을 알고 있을 것입니다.
for el in my_list:
# do something
요소를 반복할 뿐만 아니라 각 반복에 대한 인덱스도 필요할 수 있습니다.한 가지 방법은 다음과 같습니다.
i = 0
for el in my_list:
# do somethings, and use value of "i" somehow
i += 1
그러나 "enumerate" 함수를 사용하는 것이 더 좋은 방법입니다.열거는 목록을 수신하고 목록과 같은 오브젝트(반복할 수 있는 반복 가능)를 반환하지만 이 새 목록의 각 요소에는 인덱스와 원래 입력 목록의 값이라는2개의 요소가 포함되어 있습니다.그래서 만약에
arr = ['a', 'b', 'c']
「」를 입력합니다.enumerate(arr)
되는 것은 다음과
[(0,'a'), (1,'b'), (2,'c')]
각 자체에 서브 반복 가능)을하면 두 할 수 .for
뭇매를 맞다
for index, value in enumerate(arr):
print(index,value)
열거 출력의 하위 항목을 출력합니다.
일반적으로 목록의 여러 항목을 다음과 같은 여러 변수로 "해제"할 수 있습니다.
idx,value = (2,'c')
print(idx)
print(value)
인쇄하는 방법
2
c
의 종류입니다.enumerate(arr)
반복할 수 있는 만큼
열거 함수는 요소 인덱스와 요소 값을 동시에 계산합니다.나는 다음 코드가 무슨 일이 일어나고 있는지 설명하는데 도움이 될 것이라고 믿는다.
for i,item in enumerate(initial_config):
print(f'index{i} value{item}')
언급URL : https://stackoverflow.com/questions/22171558/what-does-enumerate-mean
'programing' 카테고리의 다른 글
Meteor, Vue 및 Typescript 설정 (0) | 2022.11.26 |
---|---|
Vue-Router: 페이지 새로 고침 후 로그인 페이지로 돌아가는 보기 (0) | 2022.11.26 |
연결된 데이터베이스가 MariaDB인지 MySQL인지 어떻게 알 수 있습니까? (0) | 2022.11.26 |
항목이 JavaScript 배열에 있는지 확인하는 가장 좋은 방법은 무엇입니까? (0) | 2022.11.26 |
약속.all: 해결된 값의 순서 (0) | 2022.10.29 |