Відповіді:
Потрібно використовувати щось подібне iteritems.
for field, possible_values in fields.iteritems():
print field, possible_values
Дивіться цю відповідь для отримання додаткової інформації про ітерацію за допомогою словників, таких як використання items()для версій python.
Так як Python 3 iteritems() НЕ більше не підтримується . Використовуйте items()замість цього.
for field, possible_values in fields.items():
print(field, possible_values)
Ви хочете використовувати 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
У Python3 iteritems()більше не підтримується
РІШЕННЯ1 :
Використовуйте .items
for field, possible_values in fields.items():
print(field, possible_values)
РІШЕННЯ2 :
Ви можете використовувати , enumerate()а також
for field, possible_values in enumerate(fields):
print(field, 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)
ви відсутні fields.iteritems()у своєму коді.
Ви також можете зробити це іншим способом, де ви отримуєте значення за допомогою клавіш у словнику.
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)