source

'for' 루프를 사용하여 사전을 통해 반복

gigabyte 2022. 9. 8. 22:21
반응형

'for' 루프를 사용하여 사전을 통해 반복

d = {'x': 1, 'y': 2, 'z': 3}

for key in d:
    print(key, 'corresponds to', d[key])

은 Python을 인식합니까?key★★★★★★★★★★★★★★★★★★★★★.key특별한 키워드, 아니면 단순히 변수일까요?

key는 변수 이름일 뿐입니다.

for key in d:

는 키와 값이 아닌 사전의 키 위에 단순히 루프합니다.키와 값을 모두 루프오버하려면 다음을 사용합니다.

Python 3.x의 경우:

for key, value in d.items():

Python 2.x의 경우:

for key, value in d.iteritems():

해 보려면, '우리'를 .key로로 합니다.poop.

3. Python 3.x의 iteritems()하게 대체되다items()은 dict를 으로 한 집합 를 들어, dict는 dict를 사용합니다.iteritems()하지만 더 나아..7에서 2.7로 할 수도 있습니다.viewitems()

' ' 'items()3번 할 수 , 2번 3번 2번 됩니다.(key, value) 쌍 뒤에 되지 않습니다.items()의 을 필요로 하는 는, 3.x 의 2.x 에 전화할 수 .list(d.items()).

키가 특별한 단어가 아니라 사전이 반복자 프로토콜을 구현합니다.예를 들어 클래스 반복기를 만드는 방법은 이 질문을 참조하십시오.

사전의 경우 C레벨로 구현됩니다.상세한 것에 대하여는, PEP 234참조해 주세요.특히 "사전 반복자" 섹션은 다음과 같습니다.

  • 사전은 tp_iter 슬롯을 구현하여 사전의 키를 반복하여 반복하는 효율적인 반복기를 반환합니다.[...] 이것은 쓸 수 있음을 의미합니다.

    for k in dict: ...
    

    이것은 동등하지만, 그보다는 훨씬 빠릅니다.

    for k in dict.keys(): ...
    

    사전 수정 제한(루프 또는 다른 스레드)을 위반하지 않는 한.

  • 다른 종류의 반복자를 명시적으로 반환하는 메서드를 사전에 추가합니다.

    for key in dict.iterkeys(): ...
    
    for value in dict.itervalues(): ...
    
    for key, value in dict.iteritems(): ...
    

    , ,,for x in dict의 줄임말이다for x in dict.iterkeys().

3, Python 3의 경우dict.iterkeys(),dict.itervalues() ★★★★★★★★★★★★★★★★★」dict.iteritems()는 지원되지 않게 되었습니다.dict.keys(),dict.values() ★★★★★★★★★★★★★★★★★」dict.items()★★★★★★ 。

「 」를 dict볼 수, 키 하지 않습니다.

(이것은 Python 3.6에서는 더 이상 해당되지 않습니다만, 아직 동작을 보증할 수 없습니다.)

>>> d = {'x': 1, 'y': 2, 'z': 3}
>>> list(d)
['y', 'x', 'z']
>>> d.keys()
['y', 'x', 'z']

를 들어, '아까보다'를 이 더 좋습니다.dict.items():

>>> d.items()
[('y', 2), ('x', 1), ('z', 3)]

그러면 튜플 목록이 표시됩니다..k ★★★★★★★★★★★★★★★★★」v★★★★

for k,v in d.items():
    print(k, 'corresponds to', v)

「」를 사용합니다.k ★★★★★★★★★★★★★★★★★」v as a a as 、 as 、 as 、 as 、 as 、 as 、 as 、 as 、 as 、 as as as as as as 。dict루프의 본체가 몇 줄밖에 되지 않는 경우는, 매우 일반적입니다.보다 복잡한 루프의 경우, 보다 알기 쉬운 이름을 사용하는 것이 좋습니다.

for letter, number in d.items():
    print(letter, 'corresponds to', number)

형식 문자열을 사용하는 습관을 들이는 것이 좋습니다.

for letter, number in d.items():
    print('{0} corresponds to {1}'.format(letter, number))

key을 사용하다

Python2의 경우.X:

>>> d = {'x': 1, 'y': 2, 'z': 3} 
>>> for my_var in d:
>>>     print my_var, 'corresponds to', d[my_var]

x corresponds to 1
y corresponds to 2
z corresponds to 3

...또는 그 이상,

d = {'x': 1, 'y': 2, 'z': 3} 

for the_key, the_value in d.iteritems():
    print the_key, 'corresponds to', the_value

Python3의 경우.X:

d = {'x': 1, 'y': 2, 'z': 3} 

for the_key, the_value in d.items():
    print(the_key, 'corresponds to', the_value)

를 할 때for .. in ..-http: 항상 키를 통해 반복됩니다(값을 사용하여 액세스 가능).dictionary[key]를 참조해 주세요.

키와 값의 쌍을 반복하려면 다음 명령을 사용합니다.

  • for k,v in dict.iteritems() 2Python 2 서서
  • for k,v in dict.items() 3Python 3★★

이것은 매우 일반적인 루핑 관용어입니다. in을 사용하다할지.for key in dict 꼭 할 는요.for key in dict.keys()참고 데이비드 Goodger의 Idiomatic 파이선 기사(복사본 보관).

나는 것이라 맹세를 통해 키, 값 쌍, 역시 지수 어디 있는지 여부를 나타내는 값을 얻기 위해 반복하는 사용하게 하는 경우이다.이 어떻게 그것을 하고 있다.

d = {'x': 1, 'y': 2, 'z': 3} 
for i, (key, value) in enumerate(d.items()):
   print(i, key, value)

, 에 괄호, 괄호, 괄호, 괄호 괄호, 괄호, 괄호, 괄호, 괄호, 괄호, 괄호, 괄호, 괄호, 괄호, 괄호, 괄호, 괄호, 괄호, 괄호, 괄호, 괄호, 괄호 이 있습니다.ValueError'아주 좋다'

사전 'for의 루프를 사용하 Iterating.

d = {'x': 1, 'y': 2, 'z': 3} 
for key in d:
    ...

어떻게 파이선한 사전에게서 키를 읽을 필요가 있다고 보는가?Python으로 특별한 단어 핵심 있나요?아니면 단순한 변수?

만 아니라for루프를 설정합니다.

값에 키 사전은 매핑:.

d = {'x': 1, 'y': 2, 'z': 3} 

우리가 반복하면, 우리는 건반을 반복한다. 이름 " " " "key설명만을 목적으로 하고 있습니다.또한 목적에 매우 적합합니다.

이는 목록 이해에서 발생합니다.

>>> [k for k in d]
['x', 'y', 'z']

목록(또는 다른 컬렉션 유형 개체)으로 사전을 전달하면 발생합니다.

>>> list(d)
['x', 'y', 'z']

에서 Python을 Python이라고 __iter__오브젝트 메서드(이 경우 딕셔너리)는 반복기(이 경우 키리터 오브젝트)를 반환합니다.

>>> d.__iter__()
<dict_keyiterator object at 0x7fb1747bee08>

이런 특별한 정도인지', '어느 정도인지', '어느 정도인지', '어느 정도인지', '어느 정도인지', '어느 정도인지 '어느 정도인지', '어느 정도인지', '어느 정도인지'라고 불러야 돼요.iter:

>>> key_iterator = iter(d)
>>> key_iterator
<dict_keyiterator object at 0x7fb172fa9188>

에는 리터 a it가 .__next__method - 단, 빌트인 기능을 사용하여 호출합니다.next:

>>> next(key_iterator)
'x'
>>> next(key_iterator)
'y'
>>> next(key_iterator)
'z'
>>> next(key_iterator)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

가 올라갑니다.StopIteration이 Python이 Python을 방법입니다.for루프, 목록 이해, 생성자 식 또는 기타 반복 컨텍스트.가 ""를 ""를 올린다.StopIteration항상 올라갑니다.다시 반복하고 싶다면 새 것이 필요합니다.

>>> list(key_iterator)
[]
>>> new_key_iterator = iter(d)
>>> list(new_key_iterator)
['x', 'y', 'z']

명령으로 되돌아가다

우리는 많은 맥락에서 받아쓰기를 반복하는 것을 봐왔다.우리가 본 것은 우리가 받아쓰기를 반복할 때마다 우리는 키를 얻는다는 것이다.원래의 예시로 되돌아가다

d = {'x': 1, 'y': 2, 'z': 3} 
for key in d:

변수 이름을 변경해도 키를 얻을 수 있습니다.시험해 봅시다.

>>> for each_key in d:
...     print(each_key, '=>', d[each_key])
... 
x => 1
y => 2
z => 3

는 이 값을 ..values다 받아쓰기 방법.items:

>>> list(d.values())
[1, 2, 3]
>>> list(d.items())
[('x', 1), ('y', 2), ('z', 3)]

이 예에서는 다음과 같은 항목을 반복하는 것이 더 효율적입니다.

for a_key, corresponding_value in d.items():
    print(a_key, corresponding_value)

그러나 학문적인 목적에서는, 그 질문의 예는 괜찮다.

사전을 통한 반복의 경우 아래 코드를 사용할 수 있습니다.

dictionary= {1:"a", 2:"b", 3:"c"}

#To iterate over the keys
for key in dictionary.keys():
    print(key)

#To Iterate over the values
for value in dictionary.values():
    print(value)

#To Iterate both the keys and values
for key, value in dictionary.items():
    print(key,'\t', value)

CPython의 할 수 .dicttype깃허브dict 반복기를 구현하는 메서드의 시그니처는 다음과 같습니다.

_PyDict_Next(PyObject *op, Py_ssize_t *ppos, PyObject **pkey,
             PyObject **pvalue, Py_hash_t *phash)

CPython dictobject.c

, 를 반복하는 것이 .my_dict.keys()다음과 같은 작업을 수행하려고 했을 경우:

for key in my_dict:
    my_dict[key+"-1"] = my_dict[key]-1

프로그램 실행 중에 키를 변경하기 때문에 런타임 오류가 발생합니다.하고 있는 는, 「 」를 해 주세요.for key in my_dict하지만 경고를 받았잖아요

명확하고 시각적인 예를 찾고 있는 경우:

cat  = {'name': 'Snowy', 'color': 'White' ,'age': 14}
for key , value in cat.items():
   print(key, ': ', value)

결과:

name:  Snowy
color:  White
age:  14

그러면 출력이 값별로 오름차순으로 정렬된 순서로 출력됩니다.

d = {'x': 3, 'y': 1, 'z': 2}

def by_value(item):
    return item[1]

for key, value in sorted(d.items(), key=by_value):
    print(key, '->', value)

출력:

y -> 1
z -> 2
x -> 3

본론으로 들어갑시다.단어 키가 변수일 경우, 앞서 설명한 바와 같이 'FOR LOUP'를 사전에서 실행하면 ''만 실행되며 '값'은 무시됩니다.

d = {'x': 1, 'y': 2, 'z': 3} 
for key in d:
    print (key, 'corresponds to', d[key])

이것을 시도해 보세요.

d = {'x': 1, 'y': 2, 'z': 3} 
for i in d:
    print (i, 'corresponds to', d[i])

그러나 다음과 같은 기능을 사용할 경우:

d = {'x': 1, 'y': 2, 'z': 3}
print(d.keys())

위의 경우 '키'는 변수가 아니라 함수입니다.

Python 사전은 키-값 쌍의 모음입니다.각 키는 값에 연결되어 있으며 키를 사용하여 해당 키와 관련된 값에 액세스할 수 있습니다.키의 값은 숫자, 문자열, 목록 또는 다른 사전일 수 있습니다.이 경우 테이블 내의 개별 행으로 각 "키와 값의 쌍"을 위협합니다.d는 2개의 열이 있는 테이블입니다.키는 첫 번째 열이고 키[값]는 두 번째 열입니다.for 루프는 테이블 위에서 반복하는 표준 방법입니다.

언급URL : https://stackoverflow.com/questions/3294889/iterating-over-dictionaries-using-for-loops

반응형