Zacadea Zacadea - 1 month ago 10
Python Question

How to print both strings in a dictionary in Python

I'm having trouble printing both the name in the list and the email. The beginning part of the code was already pre written and my attempt is the for loop. If anybody would be able to help me that would be greatly appreciated.

Here are the directions:

Write a for loop to print each contact in contact_emails. Sample output for the given program:

mike.filt@bmail.com is Mike Filt
s.reyn@email.com is Sue Reyn
narty042@nmail.com is Nate Arty


Code:

contact_emails = {
'Sue Reyn' : 's.reyn@email.com',
'Mike Filt': 'mike.filt@bmail.com',
'Nate Arty': 'narty042@nmail.com'
}

for email in contact_emails:
print('%s is %s' % (email, contact_emails(email)))

Answer

Your problem is that you need to use square brackets([]) instead of parenthesis(()). Like so:

for email in contact_emails:
    print('%s is %s' % (contact_emails[email], email)) # notice the []'s

But I recommend using the .items()( that would be .iteritems() if your using Python 2.x) attribute of dicts instead:

for name, email in contact_emails.items(): # .iteritems() for Python 2.x
    print('%s is %s' % (email, name))

Thanks to @PierceDarragh for mentioning that using .format() would be a better option for your string formatting. eg.

print('{} is {}'.format(email, name))