contacts.items()
возвращает пары ключ-значение. В вашем случае это будет что-то вроде
(("John", 938477566), ("Jack", 938377264), ("Jill", 947662781))
За исключением того, что в Python 3 это похоже на генератор, а не список. Поэтому вам нужно будет сделать list(contacts.items())
, если вы хотите проиндексировать его, что объясняет ваше сообщение об ошибке. Однако, даже если вы сделали list(contacts.items())[0]
, как описано выше, вы получите первую пару ключ-значение.
То, что вы пытаетесь сделать, это получить значение ключа, если указанный ключ существует, и contacts.get(key, value_if_key_doesnt_exist)
сделает это за вас.
contact = 'John'
# we use 0 for the default value because it's falsy,
# but you'd have to ensure that 0 wouldn't naturally occur in your values
# or any other falsy value, for that matter.
details = contacts.get(contact, 0)
if details:
print('Contact details: {} {}'.format(contact, details))
else:
print('Contact not found')