'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)
, 를 반복하는 것이 .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
'source' 카테고리의 다른 글
함수 이름을 문자열로 가져오려면 어떻게 해야 합니까? (0) | 2022.09.08 |
---|---|
vuex에서의 mapState, mapGetters, mapActions, mapMetations의 차이점 (0) | 2022.09.08 |
Mac OS에서 MySQL의 innodb_buffer_pool_size 값을 변경하려면 어떻게 해야 합니까? (0) | 2022.09.08 |
가능한 모든 패키지를 업데이트하시겠습니까? (0) | 2022.09.08 |
Java "? null을 확인하는 연산자 - 뭐죠? (Ternary가 아닙니다!) (0) | 2022.09.08 |