【问题标题】:how to properly iterate over a list and a dictionary values?如何正确迭代列表和字典值?
【发布时间】:2021-03-31 19:58:12
【问题描述】:

我试图先遍历列表,然后遍历字典值:

这个想法是print() 列表元素和字典值之间的所有可能组合。

这是我目前得到的:

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)
        

控制台输出:

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

预期输出:

#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

我错过了什么? 还有其他更简单的方法来完成这项任务吗?

【问题讨论】:

    标签: python list loops dictionary


    【解决方案1】:

    您应该迭代 dict 值:

    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)
    
    

    输出:

    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
    

    您可以遍历 dict's valuesdict'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)
    

    【讨论】:

      【解决方案2】:

      您可以使用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))
      

      打印:

      #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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-03
        • 2012-04-01
        • 2018-03-22
        • 1970-01-01
        • 2014-05-18
        • 1970-01-01
        相关资源
        最近更新 更多