Reputation: 1155
I am trying to iterate first over a list and then over a dictionary values:
The idea is to print()
all posible combinations between list elements and dictionary values.
Here's what I got so far:
countries = ["Mexico", "Brasil", "Argentina"]
job_catalog = {"operations director":["director de operaciones", "director of business operations"]}
for country in countries:
for job_title in job_catalog:
report_name=str(job_catalog.values())+'-'+country
print(report_name)
Console output:
dict_values([['director de operaciones', 'director of business operations']])-Mexico
dict_values([['director de operaciones', 'director of business operations']])-Brasil
dict_values([['director de operaciones', 'director of business operations']])-Argentina
Expected output:
#director de operaciones-Mexico
#director de operaciones-Brasil
#director de operaciones-Argentina
#director of business operations-Mexico
#director of business operations- Brasil
#director of business operations-Argentina
What am I missing? Is there any other simpler way to accomplish this task?
Upvotes: 1
Views: 40
Reputation: 4274
You should iterate over dict
values:
countries = ["Mexico", "Brasil", "Argentina"]
job_catalog = {"operations director": ["director de operaciones", "director of business operations"]}
for country in countries:
for job_titles in job_catalog.values():
for job_title in job_titles:
report_name = f"{job_title}={country}"
print(report_name)
Output:
director de operaciones=Mexico
director de operaciones=Brasil
director de operaciones=Argentina
director of business operations=Mexico
director of business operations=Brasil
director of business operations=Argentina
You can iterate over a dict's values
and dict's keys
:
d = {"a": "b", "c": "d"}
for key in d.keys():
print(key)
for value in d.values():
print(key)
for key, value in d.items():
print(key, value)
Upvotes: 1
Reputation: 195418
You can use itertools.product
:
from itertools import product
countries = ["Mexico", "Brasil", "Argentina"]
job_catalog = {
"operations director": [
"director de operaciones",
"director of business operations",
]
}
for a, b in product(job_catalog["operations director"], countries):
print("#{}-{}".format(a, b))
Prints:
#director de operaciones-Mexico
#director de operaciones-Brasil
#director de operaciones-Argentina
#director of business operations-Mexico
#director of business operations-Brasil
#director of business operations-Argentina
Upvotes: 1