Réponses:
Vous devez utiliser quelque chose comme iteritems
.
for field, possible_values in fields.iteritems():
print field, possible_values
Voir cette réponse pour plus d'informations sur l'itération à travers des dictionnaires, tels que l'utilisation items()
, à travers les versions de python.
Depuis Python 3 iteritems()
est plus pris en charge . Utilisez items()
plutôt.
for field, possible_values in fields.items():
print(field, possible_values)
Vous souhaitez utiliser des itérations . Cela renvoie un itérateur sur le dictionnaire, qui vous donne un tuple (clé, valeur)
>>> for field, values in fields.iteritems():
... print field, values
...
first_names ['foo', 'bar']
last_name ['gravy', 'snowman']
Votre problème était que vous faisiez une boucle sur les champs, ce qui renvoie les clés du dictionnaire.
>>> for field in fields:
... print field
...
first_names
last_name
En Python3 iteritems()
n'est plus pris en charge
SOLUTION1 :
Utilisation .items
for field, possible_values in fields.items():
print(field, possible_values)
SOLUTION2 :
Vous pouvez utiliser enumerate()
aussi bien
for field, possible_values in enumerate(fields):
print(field, possible_values)
Impossible d'itérer directement dans le dictionnaire. Ainsi, vous pouvez le convertir en tuple .
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)
vous manquez fields.iteritems()
dans votre code.
Vous pouvez également le faire d'une autre manière, où vous obtenez des valeurs en utilisant des clés dans le dictionnaire.
for key in fields:
value = fields[key]
data = (['President','George','Bush','is','.'],['O','B-PERSON','I-PERSON','O','O'])
corpus = []
for(doc,tags) in data:
doc_tag = []
for word,tag in zip(doc,tags):
doc_tag.append((word,tag))
corpus.append(doc_tag)
print(corpus)