Zacadea Zacadea - 1 year ago 570
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: is Mike Filt is Sue Reyn is Nate Arty


contact_emails = {
'Sue Reyn' : '',
'Mike Filt': '',
'Nate Arty': ''

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

Answer Source

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))