2011-03-29 2 views

답변

272

iteritems과 같은 것을 사용해야합니다.

for field, possible_values in fields.iteritems(): 
    print field, possible_values 

는 파이썬 버전에서, items()을 사용하는 등, 사전을 통해 반복에 대한 자세한 내용은 this answer를 참조하십시오.

EDIT
이후 파이썬 3 iteritems()는 no longer supported이다. 대신 항목()을 사용하십시오.

for field, possible_values in fields.items(): 
    print(field, possible_values) 
+53

왜 이렇게해야합니까? 사전을 반복하면 키/값 쌍이 아닌 키를 반복합니다. –

+1

@jeffm 그것이 나를 혼란스럽게 만든다. 나는 이것을 PHP foreach로 보았다. – tipu

29

iteritems을 사용하려고합니다. 이 사전의 키를 돌려 당신에게 튜플을 제공하는 사전 반복자 (키, 값)

>>> for field, values in fields.iteritems(): 
...  print field, values 
... 
first_names ['foo', 'bar'] 
last_name ['gravy', 'snowman'] 

귀하의 문제는 당신이 분야에 걸쳐 반복 된 것을을 반환합니다.

>>> for field in fields: 
...  print field 
... 
first_names 
last_name 
49

파이썬 3.x iteritems은 삭제되었습니다. 대신 items을 사용하십시오. '수 목록에 대해 작동하지 않습니다

iteritems이

1

는, 필드에 대한

, 열거의 POSSIBLE_VALUES (필드)을 열거 사용 사전에 직접 반복됩니다. 따라서 을 튜플으로 변환 할 수 있습니다.

first_names = ['foo', 'bar'] 
last_names = ['gravy', 'snowman'] 

fields = { 
    'first_names': first_names, 
    'last_name': last_names, 
     } 
tup_field=tuple(fields.items()) 
for names in fields.items(): 
    field,possible_values = names 
    tup_possible_values=tuple(possible_values) 
    for pvalue in tup_possible_values: 
      print (field + "is" + pvalue) 
0

객체 인쇄 (필드, POSSIBLE_VALUES) :

목록에 대한
for field, possible_values in fields.items(): 
    print(field, possible_values) 
+0

답을 설명해주십시오. –

+0

사전에서 직접 반복 할 수 없습니다. 따라서 튜플로 변환 할 수 있습니다. –

0

코드에 fields.iteritems()가 누락되었습니다.

다른 방법으로, 사전의 키를 사용하여 값을 얻을 수도 있습니다.

for key in fields: 
    value = fields[key] 
관련 문제